Ensure that USE_DEVELOPMENT_USERS is always reset

When mocking GOV.UK signon, we set USE_DEVELOPMENT_USERS to False
so that we can test things properly.

However, if the code being tested raises an exception, we never
set the setting back to its original value.

Wrap the call in a try/finally, so that we always reset the setting.

With thanks to @robyoung for diagnosing this.
Validate dashboards before saving

Previously we were not validating dashboards as part of the save
process. This commit:

- Validates dashboards
- Catches validation errors and returns a JSONified 400 to the user
- Updates test data to be valid
Merge pull request #215 from alphagov/validate-dashboard-before-saving

Validate dashboards before saving