Changes to show tag category only once for each base class.

Added changes to store value of TAG_CLASSES array into a hash and then use invert on it in order to use each model only once to add tag categories for them, having base class more than once in that array was causing duplicate entries in the pull down.

https://bugzilla.redhat.com/show_bug.cgi?id=1160209

@dclarizio please review & test.
I don't understand the need for the invert, and I'm not sure it's the right way to fix this problem.  I understand you're trying to consolidate the class type, but the invert happens to pick the last one always.  For example:

```ruby
TAG_CLASSES.invert
# =>
{
  "ext_management_system" => "EmsInfra",
  "ems_cluster"           => "EmsCluster",
  "host"                  => "Host",
  "miq_group"             => "MiqGroup",
  "miq_template"          => "TemplateInfra",
  "repository"            => "Repository",
  "resource_pool"         => "ResourcePool",
  "service"               => "Service",
  "storage"               => "Storage",
  "user"                  => "User",
  "vm"                    => "VmInfra"
}
```

Notice that 'vm', for example, picked 'VmInfra', because it's last.  Is that correct?  I'm concerned because of the `next if` line immediately after this one.  It will exclude specific classes from that list, so it's possible that the `.invert` could consolidate to an excluded class, and you'd end up with nothing.  That line seems like it was added to do exactly what you are trying to fix, but maybe it's wrong?  Incidentally, if you end up with nothing, your spec will still pass, because it doesn't look for specific values being present, it just checks they're all uniq.