Restructure application into different modules

Routes.py has been renamed to run.py so to run the application
run:

    python run.py

Flask app creation and it's config have been moved to an app
packages which requires that the templates and static content
is moved as well. Config variables can now also be set via
environment variables. This is more in line with the "12 factor"
web app: http://12factor.net/

The csv_utils.py have been moved out of the root and into a utils
package as the csv module and other utility functions have been
moved out of run.py (routes.py) into their own utils modules.

This might not be the best way to structure the app, but this will
be better to maintain as time goes by.
Add some install, configuration and run information to the README

We need to document what we have.
Use os.path.splitext instead of rsplit to get file extensions/names

This is what os.path.splitext was designed for so we should use
the batteries inlcuded.
Remove redundant "if condition then true else false" block

Instead of writing:

    if something == 'word':
        variable = True
    else
        variable = False

it is more readable and not as redundant to just do:

    variable = (something == 'word')
Merge handle_csv into the upload csv view

It was weird to call a function from the view which returned a
rendered template with no indication that it should. Further look
at the handle_csv function which returned the template shows that
it only validates the csv and renders the templates (plural because
it also rendered the error templates). It is better to see from
the view itself all possible outputs instead of pushing them into
a different function.

This also fixes a bug in that the os.path.splitext has a leading
dot in the file extension so it would check for '.csv' not only
'csv' when the configuration uses 'csv' (which is better for
configuration).
Return the correct HTTP status code for errors

We return status code 400 (bad request) if the csv file doesn't
validate for some reason. This is the proper way to handle bad
requests.
Update /csv resource to only support POST requests

Since users always have to post the csv file it should not be
possible to interface with the /csv resoure via a GET.
Remove uploaded csv file if it didn't validate.

We don't want to store a lot of badly formed files. They won't be
used so they should be removed to make space for properly formed
files.
Redo the looks of the site so it has its own unique style

Branded with Open Knowledge visuals and improved user experience
by laying out the steps of the process for budget data package
creation.

Created three dummy pages with content that's missing:

* Standardized data page
* Specification page
* Tips and tricks page (howto)

Those three pages do not have any content at the moment as that
needs to be written.