Clean up loadmodel decorator

I wasn't aware of class decorator semantics when I wrote it.
Merge pull request #366 from girder/cleanup-loadmodel-decorator

Clean up loadmodel decorator
Added functions to list and delete partial uploads.  The s3 adapter hasn't been completed.
Added and tested code to support an alternate S3 server to make testing easier.  Added code to delete partial uploads.
Added a minimum age parameter to getting and deleting partial uploads.
Added some exception handling to try to prevent cleaning partial uploads when we really can't do it.
Added a mock s3 server to facilitate testing.
Added more tests to the file api to increase coverage.
Added tests to check uploading files via the web server to the grifs and s3 assetstores.  This covers more of the S3UploadHandler, but there are still large portions that are not covered (mostly resume and multi-chunk).  The s3 mocking server I am using doesn't support multi-chunk, so I don't know that we will be able to add that easily.
Added tests to test listing and deleting partial uploads.  Added more upload testing for different assetstores.
Added code to delete abandoned uploads from S3 stores that are not tracked in our database.  This can happen, for example, if you start a new girder instance and abandon the old one.
The known upload list wasn't being used properly in checking against actual S3 abandoned uploads.
Added tests to test uploading large files.  Refactored how I was uploading files to the mock S3 serer to actually use http POST and PUT requests rather than direct through boto.  If we ever need a local function to upload to the S3 store, this is a start.
Delete partial uploads when we are deleting an asset store.
Added code to find an open port before attaching the mock S3 server.
Added paging when listing partial uploads.  Changed how deletions were performed to not keep a cursor open.
Fixed an issue I created in trying to find an open port for the mock S3 server.
Merge branch 'delete-orphaned-uploads' of https://github.com/girder/girder into delete-orphaned-uploads