Case-insensitive uniqueness

When the user tried to create the same entity twice but with different
case-sensitivities, the server would reach an infinite loop or allow both
entities to exist in the case of Tag. This fix converges those to more
standard behavior by universally rejecting the request to create the entity
twice. The fitting error message will be: "...already exists, and the name
fields do not match".

Fixes https://tickets.puppetlabs.com/browse/RAZOR-313
This could indeed be made more generic. I'd planned to use it for `tasks` as well as `tags`, but `tasks` did not require migration. If this is to be used in a later migration, `class_name` (or more accurately, `clazz` or somesuch) would indeed be better.