File Upload functionality

Contains the code changes to add file upload to self submission and to
maintain compatibility with the old workflow.