Add S3 support to store budget data packages

This required a major rewrite of the app to accommodate for the
S3 upload in the most convenient way. This is probably not the
best structure for all of this but it can be improved later.

Most of the things with S3 happen on the backside so flask uploads
things to S3 but exposes the data package and the csv on a url
where visitors can download it.

In order to reduce bandwidth use and access to the files on s3
important information is now passed on from step to step instead
of being extracted over and over again in each step.

S3 heavylifting is done by boto and the requirements have been
updated accordingly.
Add different images for different steps

By changing the spreadsheet icons in the jumbotron we help make it
clearer to users what has happened (visually).