Item copy

This implements an item copy rest call via /item/{} POST.  It adds test coverage for the new functions.  As part of this, I've added a method to the files model to copy a file.  For all of our current three asset stores, I've added code to allow multiple files to use the same data through the use of a repeated reference.
The power of the S3 assetstore is that all of the data transfers (except for the initial validation on assetstore creation and the deletion of files) go directly between the end user and S3, with Girder only acting as the authorizing broker of the transfers. The web client code that does that can be seen [here](https://github.com/girder/girder/blob/master/clients/web/src/utilities/S3UploadHandler.js).