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.
I'm torn on this.  Python 3 continues to support `%`, and the docs no longer say that `%` is obsolete (they just have a statement that they like `format` ).  `%` handles some things better (notably unicode to string conversions), is easier to convert to efficiently passing to logging modules, and is more printf-like.  `format` often reads better.

On this specific line, if `doc['name']` is a unicode datatype and contains non-ASCII characters, simply changing this to `'{} ({})'.format(doc['name'], n)` will throw an error.  If your formatting string is a unicode string, and `doc['name']` is utf-8 with non-ASCII characters, both `%` and `format` will throw errors.