Implemented move and copy picked items.

When an error occurs and we are showing progress, if it is a ValidationException or RestException, show the message from the error.

Added a copyFolder function and an associated REST endpoint.  Throw a ValidationException if you try to move a folder to itself.  Added the internal ability to auto-rename folders.  Increased folder api test coverage.

Added resource/copy POST and resource/move PUT endpoints.  Added complete coverage tests for api/v1/resource.py.  Fixed an issue deleting non access-controlled resources.

Update the provenance plugin to understand and document copying.  Fixed an issue when deleting a file that was in an item with no provenance data.  Also, if you added and then removed 'file' from the list of resources in the provenance plugin, the test will fail because 'model.file.save' was unbound.  Added a test for the bindings.  Bumped provenance plugin version.

Fixed and expanded notification tests.  The check for interval-gated updates could fail in slow builds.

Added the ability to have enums in swagger descriptions.

Fixed some Sphinx and rst issues.

Fixed a mongo index on folder models.  This was the index intended to speed up listing large collections; the one added for items was correct, the one for folders was not.

Resolves issue #279.
One of the niceties of the ProgressContext is that you don't need to do conditional checking every time you want to do an update. The first argument to `ProgressContext.__init__` actually takes care of that for you internally, so you can remove these conditionals.