<Purpose>
    Imports all modules within the modules folder.  This should only be called once 
    throughout the entire execution of seash.
      
  <Side Effects>
    Modules that don't have collisions will have their commanddicts and 
    helptexts loaded and returned.
    
  <Exceptions>
    ImportError: There is an existing module with the same name already imported.
      
  <Return>
    The seashcommanddict that contains the imported commands on top of the 
    passed in commanddict.

def import_all_modules():
  """
  <Purpose>
    Imports all modules within the modules folder.  This should only be called once 
    throughout the entire execution of seash.
      
  <Side Effects>
    Modules that don't have collisions will have their commanddicts and 
    helptexts loaded and returned.
    
  <Exceptions>
    ImportError: There is an existing module with the same name already imported.
      
  <Return>
    The seashcommanddict that contains the imported commands on top of the 
    passed in commanddict.

  """
  for module_folder in get_installed_modules(): 
    try:
      if module_folder in module_data:
        raise seash_exceptions.ModuleImportError("Module already imported")
      module_data[module_folder] = import_module(module_folder)
    except seash_exceptions.ModuleImportError, e:
      print str(e)