Saving changes to tag_names happens when taggable instance is saved.

This means that changes to tag_names aren't applied immediately, and you must call save on taggable for the changes to be persisted. It also means that you can pass in tag_names to a taggable object on initialisation, and it removes the need for the psuedo-Array TagNames class. Perhaps slightly more work to use, but a better result overall. Closes #4.