Maintain replacement initial checkin:
   * basic project layout
   * added core app
   * started implementing Plugin dependency checking, tests included
   * started plugin registration, test skeleton but nothing functional
   * started plugin enabling based on dependencies, non-functional
Updates for plugin system:
   * moved all Plugin impls for testing to test_plugins.py
   * renamed the test Plugins to names describing what they are for
   * implemented PluginManager.enable_plugin(), including most tests that are needed
   * implemented most of PluginManager.disable_plugin(), no tests yet
   * implemented get_depended() to fetch the list of enabled plugins that are depending on a given plugin instance
Added unittests for get_dependeds()
Added tests for PluginManager.enable_plugin()
More plugin system
  * Splitting PluginManager into super class and RootPluginManager
  * shortened function names
Renaming modules.py to plugins.py
Plugins:
   * added first pass at models for tracking configuration and sessions
   * added autodiscover to RootPluginManager, detects, registers, and enables plugins from apps
   * RootPluginManager.register() implemented, creates config record for Plugin
   * added very basic view handler for plugin management
Plugins: Interface and config saving/loading
  * implemented a mostly functional plugin enable/disable screen.
     * ajax for depends, depended, enable, disable.  includes popup confirmation listing chained enable/disable
     * no error handling yet.
     * somewhat decent css
  * enable/disable now save this state in the config.  The config is loaded but not yet processed and passed to the Plugin
Plugins - Adding per-plugin configuration
  * plugins can now define custom configuration using a django form.
  * some groundwork in the functions for supporting a tabbed config page using a list of forms.  functions *should* work, but template isn't done yet
  * functions for update config for already running plugins
  * added base template and updated other templates to use it
  * added pre-save, post-init functions to PluginConfig to pickle/unpickle custom configuration
minor css tweak
Plugins - tabbed config forms, default configs, css, settings

  * added settings for MEDIA, ROOT, DOC_ROOT
  * added processor for adding the above settings to views
  * added some static media folder, plus url mapping
  * minor css/layout tweaks to plugin page
  * added PluginConfig.set_defaults() to set default config from a Plugin class.  uses default values configured in Plugin.form_class
  * when registered for the first time default configuration is generated
  * finished implementing tabbed forms for Plugin classes with multiple forms
     * refactored config.html to contain most of the logic for dealing with a tabbed form.  this allows plugins to have tabs by default for common options
     * moved form display to its own include
     * implmented config_tabbed to be an extension of config.html that displays multiple forms as tabs
     * updated view handler to work properly with multiple forms
Plugins - updating unittests and various minor bug fixes
Switching base to googles copy of jquery 1.4
removing extra include of jquery
Plugins - adding error reporting to enable/disable
Plugins - errors when enabling are now displayed
Plugins - fixed enable popup for plugins with no dependencies
Plugins - fixed bug with get_dependeds(), updated testcase to look for this bug
Plugins - plugin template now has keybindings
Plugins - various changes:
   * moved foo plugins to test plugins
   * plugins.html now has an alpha sorted list
   * added descriptions to all test plugins
   * descriptions are now displaying on enable/disable windows