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
Why is 'class_name' passed in as a param, but it then uses the constant Razor::Data::Tag here ? I'd have expected that class_name be passed there, too.

To be extra nitpicky: the paramter 'class_name' is not really the name of a class, it is the class itself