Various changes to the upload application

This is a lot in one, single commit.  It contains testing of the
actual web api calls, and a file repository abstraction.