Change dashboard-editor permission to dashboard

`dashboard` is what's used in Stagecraft and specified in our
documentation, so it's what we should use here.
[#73958524] Add a create dashboard route

This page will contain a form to allow creating dashboards.
Don't escape HTML in flashes

Flashes will need some care and attention, because they can now
contain arbitrary HTML.

This is so that we can provide nicely formatted error messages.
Add Flask-WTF, protect the app from CSRF attacks

We need to worry about CSRF because this application contains forms
that can be exploited by an attacker.

Retroactively apply CSRF protection to the upload endpoints.
Add assertion that session doesn't contain element

Add a method assert_session_does_not_contain that asserts that a
KeyError is raised for a given key when accessing the session.

Change the existing assert_session_contains method so that it
is the only thing checking for a KeyError and raising an
AssertionError because of that. This is because otherwise
we would be asserting that an AssertionError is raised, which
is confusing.
Implement dashboard creation form

This commit introduces a form that will POST to Stagecraft to
create a dashboard.

It makes use of the session to store the form if it fails validation,
and then presents it back to the user.
Merge pull request #53 from alphagov/73958524-create-dashboard-form

[#73958524] Create dashboard form
Give the development user dashboard permissions
Add a footer

Adding a footer helps the user figure out when the page has ended.

Also it means that forms don't go right up until the end of the page,
making it harder to submit.
Add module creation to dashboard form
Remove unused variables.
Use MultiDict for wtforms

Use MultiDict class for input to wtforms form so that modules can be
loaded.
Fix dashboard tests and pep8

parse_modules_from_session no longer exists
Allow get_module_choices to fail in development

This is required for the tests to run in travis.
Upgrade performanceplatform-client

The new endpoints in the admin API are now supported in the admin client
(AdminAPI). Make use of these in the admin app to get the benefit of
things like backoff and gzipping, and simplify the admin app code
slightly.

Controversially, this introduces a TESTING environment variable that is
set during testing, and used in production code. This is because the
admin app needs to speak to the admin API at startup to get the
available module types for the form select field.
Correctly get current number of modules
Hard link pyScss to 1.2.0 as the higher version fails for our SCSS
Add utf-8 encoding to css files being written
Merge pull request #56 from alphagov/sass_that_works

Hard link pyScss to 1.2.0 as the higher version fails for our SCSS
Add test for creating a dashboard with a module