Refactor errors for disallowed tag parameters

This refactors the way in which errors are returned to clients when an
attempt is made to update a field for the resource which cannot be
updated.
Disallow updates to the tag_type field

We should not allow changes to the tag_type attribute, as it effectively
changes the tag ID and will break taggings of content.
Merge pull request #218 from alphagov/disallow-updates-to-tag-type

Disallow updates to the tag_type field
Override GDS::SSO.test_user with extra permissions

In development, the "mock bearer token" strategy used for API requests
returns a user which has only the "signin" permission by default. For 
requests to change tags to work, this user needs the "manage_tags" 
permission too. 

The easiest way to add this permission is to override the 
GDS::SSO.test_user variable with a new user that has all the necessary
permissions. The test user takes precedence over the dummy user [1] so
this user will always be selected.

A nice side effect of doing this is that it will no longer be required
to have a user in the database when running this app in development, as
the GDS::SSO.test_user field is checked first.

This file is overwritten on deploy, and GDS::SSO.test_user is not 
requested in production environments, so this will not have an effect
on the production behaviour of the app.

[1] https://github.com/alphagov/gds-sso/blob/v9.3.0/lib/gds-sso/bearer_token.rb#L49
Merge pull request #219 from alphagov/override-gds-sso-test-user

Override GDS::SSO.test_user with extra permissions
Adding migration to rename /housing/... to /housing-local-services/...

Renaming the tag 'housing' to 'housing-local-services' so 'housing' can be reused as a topic.
Stop prepending parent_id to tag_id on JSON create

This changes the TagsController so that we no longer prepend the 
parent_id of a tag to its tag_id when creating a child tag through a
JSON request.

This makes the behaviour of the JSON API more consistent with the 
update method, as the required value of tag_id will be the same across 
both the create and update methods.
Merge pull request #220 from alphagov/dont-prepend-parent-id-on-json-tag-create

Stop prepending parent_id to tag_id on JSON create
Register email signup routes for topics.

Registers a prefix route for child topics and
deletes the exact route.

The copy to the array is because FOR SOME REASON
mongo/id returns the same item twice during an
each if you modify the item as it passes, with bad
data to boot.

WHY.  WHY.  WHY MONGO WHY.
Remove unused test setup.
Merge pull request #221 from alphagov/register-email-signup-routes-for-topics

Register email signup routes for topics.
removing the bang so the script won't stop on a fail
Merge pull request #222 from alphagov/renaming_browse_housing_section

Adding migration to rename 'housing'... to 'housing-local-services'...
Revert "Adding migration to rename 'housing'... to 'housing-local-services'..."
Merge pull request #223 from alphagov/revert-222-renaming_browse_housing_section

Revert "Adding migration to rename 'housing'... to 'housing-local-servic...
Migration to rename 'housing' tags to 'housing-local-services'

The existing tag 'housing' will be used as a topic so we need to rename the existing tags.
Merge pull request #224 from alphagov/rename_housing_tags_to_housing_local_services

Migration to rename 'housing' tags to 'housing-local-services'