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.
Great test. One good addition (to catch the bug mentioned above) would be asserting that the old file also still exists in the previous item parent, and perhaps that the previous item also exists within its old parent (i.e. that the old documents were not modified).