Setting model for server-side configuration options

We will persist server configuration settings to the database in
the form of a key/value store.
Created a utility for loading plugins as python modules
Add system-level methods to the web api
Events framework

As one might expect, this framework makes use of the observer
pattern. This will be one of the most important ways that the
functionality of various plugins are invoked.
Asynchronous events framework

We use a simple background thread to handle asynchronous
processing requirements.
Enforce distinct (eventName, handlerName) mapping in event system
Add test for event system (100% coverage!!)

This tests both the synchronous and async capabilities. Also,
since it's a unit test, I added some ground work for running the
python tests in parallel.

Also some minor style fixes for more rigorous pep8 compliance.
Add tests for the /system endpoints

Which exercise the Setting model
Add generic event triggers from core

Added hooks for the following events:

- Authenticating the user
- Before executing each REST API method
- After executing each REST API method
- When validating a model as it is about to be saved
- When saving a model to the database
- When deleting a model from the database
- Async hook for processing data after an upload completes

These hooks alone will meet the backend hook requirements for
the majority of plugins.
Added logging and topological sorting of plugins at load time

We added the girder.logger utility with split error and info logs
that automatically rotate. Also, we gave plugins the ability to
create a plugin.json file in their top level directory, which
will contain all of their declaration info such as name, desc,
and a list of other plugins they depend on.
Prototype front-end for plugin management
Remove unnecessary condition variable

The Queue handles the blocking with a CV internally.
Functioning enable/disable controls for plugins on admin page
Simplify event response system

This will actually make it more powerful by allowing handlers to
manipulate the order of responses as they need to.
Include full stack trace in exceptions from rest endpoints

This is to help plugin developers find the source of their errors.
Before, we were chopping off the first element of the stack trace,
but in certain instances that was causing the stack trace to
appear empty.
Add plugins dir so stuff doesn't break
First crack at proper routing in our REST layer
Cache the per-request authenticated user so we never perform
the authentication procedure more than once per request, even if
there are multiple calls to getCurrentUser()
Continued refactor: user, folder, item

- Added the "loadmodel" decorator for REST route handlers. This
  allows path parameters to be mapped as a resource ID to the
  actual model they represent in a consistent way.
More REST refactor: collection, file, assetstore