Add a validator for Tag IDs.

This adds a new validator for validating Tag IDs. The validator requires 
tag IDs to conform to the following rules:

- Only contain lowercase alphanumeric characters.
- When the tag has a parent, the tag ID must start with the parent's ID 
and a slash.
- No other slashes are permitted in the ID
Validate tag ids are unique within their tag type

We already have a uniqueness index on this, but we should catch this 
at validation time too.
Remove parent_id validation in tag_ids

Validation the tag_id for the presence/lack of the parent_id will 
require many changes to tests across multiple apps, as many tests 
create stub data with a child-like tag id, but without any parent_id.

We should still do this at some point, but for now a simpler validation 
for a single slash will go enough of the way to ensuring the quality of
tag IDs.
Don't allow a tag ID to end with a slash
Merge pull request #149 from alphagov/tag-validation

Improve validations for tags

https://www.pivotaltracker.com/story/show/66501256