Refactor MiqRequestWorkflow#allowed_tags
Refactor MiqRequestWorkflow#allowed_tags

Makes use of the new Classification to avoid conditionals and extra
iterations.

* Removes the class_tags variable and query (avoids reject over all the
  records)
  - Changed to using the `writeable` query on Classification to replace
    `reject!` functionality

* Remove `.includes(:tag)` on all queries
  - `managed` and `with_tag_names` scope used to avoid needing the "tag"
    for just the "name" field and alias a column in the returned result
    set called `tag_name`.  Now when `t.name` is called, it will use
    `tag_name` under the hood instead of needing to fetch (or have
    already fetched) the associated tag.

* `managed` is used instead of `t.tag2ns(t.tag.name) == "/managed"`
  - The `tag2ns` method determines the namespace of the tag name, which
    is just "one level up" for the tag (so with "/foo/bar/baz/qux", it
    would have a namespace of "/foo/bar/baz").  The `managed` scope just
    does a regexp that looks for tags with only one level below
    `/managed`, so a regexp of `\/managed/[^\/]+$`
  - This removes a if statement for each element and does it in sql.

* Splits up "cats" and "ents" into two separate queries
  - Makes two queries instead of one, but we only query the ones we need
    in the `ents` instead of throwing out the ones in ruby with a
    conditional that don't have a parent in `cats`
    (was `if @tags.key?(t.parent_id)`)
  - This also allows us to remove the `class_tags.partition`, which was
  another iteration of the entire result set before they were processed.

billfitzgerald0120/manageiq,branic/manageiq,durandom/manageiq,romaintb/manageiq,d-m-u/manageiq,josejulio/manageiq,skateman/manageiq,pkomanek/manageiq,NaNi-Z/manageiq,djberg96/manageiq,mresti/manageiq,josejulio/manageiq,NickLaMuro/manageiq,NaNi-Z/manageiq,KevinLoiseau/manageiq,skateman/manageiq,fbladilo/manageiq,syncrou/manageiq,gerikis/manageiq,kbrock/manageiq,hstastna/manageiq,djberg96/manageiq,borod108/manageiq,skateman/manageiq,borod108/manageiq,juliancheal/manageiq,josejulio/manageiq,fbladilo/manageiq,andyvesel/manageiq,mzazrivec/manageiq,tinaafitz/manageiq,billfitzgerald0120/manageiq,romanblanco/manageiq,maas-ufcg/manageiq,ilackarms/manageiq,chessbyte/manageiq,djberg96/manageiq,billfitzgerald0120/manageiq,maas-ufcg/manageiq,ManageIQ/manageiq,jrafanie/manageiq,lpichler/manageiq,israel-hdez/manageiq,jntullo/manageiq,romaintb/manageiq,hstastna/manageiq,KevinLoiseau/manageiq,branic/manageiq,fbladilo/manageiq,aufi/manageiq,mresti/manageiq,gerikis/manageiq,ilackarms/manageiq,tinaafitz/manageiq,ailisp/manageiq,mzazrivec/manageiq,d-m-u/manageiq,d-m-u/manageiq,agrare/manageiq,jntullo/manageiq,jameswnl/manageiq,jrafanie/manageiq,ManageIQ/manageiq,maas-ufcg/manageiq,KevinLoiseau/manageiq,juliancheal/manageiq,tzumainn/manageiq,tzumainn/manageiq,jvlcek/manageiq,KevinLoiseau/manageiq,syncrou/manageiq,jrafanie/manageiq,gmcculloug/manageiq,fbladilo/manageiq,mfeifer/manageiq,tzumainn/manageiq,mresti/manageiq,jrafanie/manageiq,skateman/manageiq,jvlcek/manageiq,romaintb/manageiq,juliancheal/manageiq,borod108/manageiq,gerikis/manageiq,jvlcek/manageiq,andyvesel/manageiq,durandom/manageiq,romanblanco/manageiq,josejulio/manageiq,agrare/manageiq,branic/manageiq,romaintb/manageiq,romanblanco/manageiq,matobet/manageiq,NickLaMuro/manageiq,jameswnl/manageiq,lpichler/manageiq,matobet/manageiq,NaNi-Z/manageiq,KevinLoiseau/manageiq,lpichler/manageiq,ManageIQ/manageiq,hstastna/manageiq,israel-hdez/manageiq,yaacov/manageiq,matobet/manageiq,matobet/manageiq,romaintb/manageiq,maas-ufcg/manageiq,jntullo/manageiq,KevinLoiseau/manageiq,aufi/manageiq,agrare/manageiq,ilackarms/manageiq,billfitzgerald0120/manageiq,lpichler/manageiq,durandom/manageiq,mkanoor/manageiq,agrare/manageiq,ailisp/manageiq,mfeifer/manageiq,branic/manageiq,gmcculloug/manageiq,yaacov/manageiq,mkanoor/manageiq,maas-ufcg/manageiq,ailisp/manageiq,yaacov/manageiq,andyvesel/manageiq,romanblanco/manageiq,mkanoor/manageiq,chessbyte/manageiq,gmcculloug/manageiq,chessbyte/manageiq,tinaafitz/manageiq,mkanoor/manageiq,tinaafitz/manageiq,mfeifer/manageiq,andyvesel/manageiq,yaacov/manageiq,israel-hdez/manageiq,aufi/manageiq,NaNi-Z/manageiq,mresti/manageiq,israel-hdez/manageiq,mzazrivec/manageiq,borod108/manageiq,tzumainn/manageiq,ManageIQ/manageiq,jameswnl/manageiq,romaintb/manageiq,gerikis/manageiq,ailisp/manageiq,kbrock/manageiq,chessbyte/manageiq,durandom/manageiq,juliancheal/manageiq,pkomanek/manageiq,mfeifer/manageiq,syncrou/manageiq,kbrock/manageiq,jntullo/manageiq,jameswnl/manageiq,syncrou/manageiq,ilackarms/manageiq,aufi/manageiq,maas-ufcg/manageiq,mzazrivec/manageiq,d-m-u/manageiq,NickLaMuro/manageiq,jvlcek/manageiq,NickLaMuro/manageiq,kbrock/manageiq,hstastna/manageiq,gmcculloug/manageiq,pkomanek/manageiq,pkomanek/manageiq,djberg96/manageiq