Ignore .db files and screenshots directory
Improve formatting
Implement basic filename/extension checker and render appropriate
success/failure messages back to the user
DRY out analyse.html
Check whether or not size of uploaded file is within "sane" limits and
reject if it isn't. Current limit: 5MB
Check MIME type of uploaded file to determine whether or not .zip is
actually a binary file, and .xml is actually XML/text
Add client-side validation of file size using jQuery and the fact that
the HTML5 File API specification allows basic interaction with local
files.

Source:
- http://stackoverflow.com/questions/1601455/check-file-input-size-with-jquery/3937404#3937404
- http://i.ndigo.com.br/2012/01/javascipt-checking-the-file-size/
Add some color to jQuery validation messages
Refactor: Move code for file size validation to javascript block in
the appropriate template (analyse.html)
Check integrity of .zip files
Check contents of uploaded zip and reject it if it contains any
non-XML files.

For now, we are performing only a superficial check for file
extensions. It might make sense to extend this check to also verify
MIME-types of individual files.
Catch BadZipFile in zip integrity validator
Rename corrupted_files variable in zip integrity validator to
"corrupted_file" to reflect the fact that ZipFile.testzip() returns
the first corrupted file it finds, not a list of files
Rename validate_zip_format to validate_extension to reflect the fact
that we allow .xml files as well
Make sure CSS classes for coloring help texts for file size validation
are not just added but also removed appropriately
Make client-side file size validation more helpful by showing max upload size
DRY: Put code that sanitizes the name of the uploaded file in a
separate utility function
Make sure file name is sanitized before it is accessed by any view logic
Increase vertical spacing for imports
No need to pass 'r' flag to ZipFile constructor in
validate_zip_contents: We are not extracting the archive at this point