Add a state machine to the Tag model

This adds a simple state machine to the Tag model that supports 
publishing a tag from draft to live.

The 'state' attribute has been set as a protected attribute, so that 
it can't be mass-assigned.