File is required during CSV upload

@pbadenski
WIP backdrop migrations
Add beter styling and description to CSV upload
Acceptance test - no file provided for csv upload
Merge pull request #100 from alphagov/add-styling-and-description-to-csv-upload

Add beter styling and description to CSV upload
Merge pull request #99 from alphagov/csv-upload-file-required-validation

File is required during CSV upload
Replace hyphens with underscores in bucket names

The job of allowing hyphens in bucket names has been moved to another story as there is more work to it.
Re-add fco realtime collections.
Make realtim fco bucket names match format of others
Return 404 for invalid buckets

@maxfliri
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	modified:   backdrop/write/api.py
#	modified:   features/write_api/write_api.feature
#	modified:   tests/support/test_helpers.py
#	modified:   tests/write/test_flask_integration.py
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	backdrop/write/config/development_environment.py
Move side effect setup to main logic

@maxfliri
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	modified:   tests/write/test_flask_integration.py
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   backdrop/write/api.py
#	modified:   features/write_api/write_api.feature
#	modified:   tests/write/test_flask_integration.py
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#	backdrop/write/config/development_environment.py
#	backdrop/write/flaskext.py
#	tests/write/test_flaskext.py
Validate bucket name using a converter

This also fixes the status code returned after POSTing to _status to be 405

@maxfliri
Rename flaskext as flaskutils and move it to core

@maxfliri
Merge pull request #101 from alphagov/refactor-routes

Refactor routes
P to the E to the P to the 8... PEP8!
Use consistent naming for tokens
Merge pull request #103 from alphagov/add_capped_collections_for_realtime_data

Add capped collections for realtime data
Merge branch 'master' into add-buckets-for-pingdom-data

Conflicts:
	backdrop/write/config/development_environment_sample.py

Both branches added buckets.