Disallow updates to the tag_type field

The `tag_type` field should not be able to be changed through the `TagsController`, as it effectively moves the tag to another ID (which will break its taggings).

These changes disallow updates to this field, and refactors the code that enforced these validations to be clearer and reduce duplication.