initial commit of provenance plugin
addressed feedback, add tests
fixed comment to in sync with code
improve efficiency & fix bug for detecting meta changes
Added support for version numbers in plugins.  For instance, add "version": "0.1.0" to a plugin's plugin.json file.  Added a version number to the example plugin docs.
The google analytics plugin had the wrong id for its error field, resulting in not showing errors.
Track rest requests so that we can tell if they are still processing and so that we can abort them.  Use this information in web tests to improve our ability to tell if a page is finished loading.  Cancel pending collection fetches within main body page initialization functions to try to fix the occasional problem of changing pages quickly resulting in the wrong page being shown.  Changed some of the web tests to try to harden against occasional test failures.

Changed the test that the system was returning its version number in the packaging rest api test, as it could pass before the system was actually ready.
Commit to add a checkpoint for development of the provenance plugin.  Added the ability to dynamically change which resources (models) are tracked.  This includes the ability to remove a route from documentation and endpoints.
Provenance now tracks file changes for an item.  I added a save.created event to the model base.  This is fired just before the save.after event.  Removed a gratuitous save within the upload model that resulted in saving a file twice as it was being created.
Added and reworked the tests for the provenance plugin.  When uploading a file directly to an item, the file would get saved twice upon creation.  Also, if the user uploading the file was not the owner of the folder, the upload could fail even if the user had admin access.  When cleaning up abandoned uploads in the file system assetstore, if the abandoned upload had no chunks, an error could be reported.
Added a general GET method for resources to make it possible to examine provenance on models that don't have corresponding endpoints.
Added the ability to track provenance on internal-only resources, such as settings.  Explicitly disallowed tracking provenance on notification, password, and token models.
Fixed some PEP8 issues.  Added the model.{}.save.created message to the plugin docs.  Added a test for the new resource endpoint.
Added a test for the javascript part of the provenance plugin.  This can be used to generally add plugin client tests.
Refactored cmake add_web_client_test function.

I refactored the add_web_client_test function to be a single function with optional parameters.  Also, I added coverage and code style tests for the provenance javascript.
Split out the ResourceExt class into its own file.
Merge branch 'master' into provenance_plugin
Merge pull request #270 from girder/provenance_plugin

[WIP] provenance plugin