Upload documents

First pass at the upload document feature. Right off the bat I can see I'll want to refactor the upload stuff into it's own class.