Add tags for relating content

Removed `MetaData` and added a new general use `Tag` model for keeping track of what tags are available to use.

Added a new `RelatesObjectTags` concern which adds two fields to the object:

```ruby
# This is the object tag that this object "owns". We are validating that this is unique.
field :my_object_tag, type: String

# An array of object tags that this object is related to and interested in pulling in content for.
# In the case of news/events, this would be object tags they want to publish to.
field :related_object_tags, type: Array, default: []
```

It also adds a scope for looking up objects by their tags.
It now checks if the object responds to slug first.