Move consumer atom feed to correct API location.

When fetching info specific to a consumer our preferred API layout is to
go to /consumers/{uuid}.

This patch moves /owners/{key}/consumers/{uuid}/atom to
/consumers/{uuid}/atom.

This coincides also with /consumers/{uuid}/events which is just a
different representation of the same data.

I have verified the old API call is used in neither SAM, Satellite,
nor hosted environments.

Updated and expanded on some related spec tests.
Improve spec test for running in parallel.
Use XPath to verify event atom feed looks correct.
Consumer specific content set/repo overrides

API to maintain overrides on the server.
To be used by client machines and SAM/Katello
Every call returns entire JSON representation of the set of overrides for the specific consumer.
Each add/delete command requires a JSON body.
public schema name unnecessary
Fix compliance rules for source consumer pools.

If a system is using an entitlement whose pool has a source consumer,
which has an environment, the JSON was not serializing coming back from
the rules. In this case environment content cannot have a reference to
it's environment, as that would be a circular dependency. However the
environment was used in the hashcode method causing a NPE.

Found in Katello where environments are used.

Changed to only use environment in the hash code if there is one. This
should be safe as any situation where we're hashing environment content
objects, should mean they're already separated by environment.

Includes some logging improvements as the exception was initially being
completely hidden from us.
Logging touchups.

As requested by beav.
1017394: Existing entitlement freezes all consumer entitlements when content set count is increased.

Result of fix is that only the entitlement with the content set excess will be frozen
The entitlement will remain in dirty state until either the content set count goes below 185 or the client upgrades to a V3 client version.
All other entitlements will behave normally.
Correct Pythonism that slipped into spec tests.

In Ruby, the "and" operator has extremely low precedence
and is not generally what you want to use.
See http://devblog.avdi.org/2010/08/02/using-and-and-or-in-ruby/
Merge pull request #409 from candlepin/awood/ruby_correction

Correct Pythonism that slipped into spec tests.
Merge pull request #398 from candlepin/dgoodwin/consumer-atom-relocation

Move consumer atom feed to correct API location.
Heal virt-host using guest products and only virt_limit pools

When autohealing a virtual guest, first attempt to heal the host.
However, when we heal the host, we only want to use pools that provide
subpools accessable by the guest, for the guests installed products, not
necessarily what the host machine has installed.
Merge pull request #408 from candlepin/ckozak/heal_host_virt_limit

heal host with only virt_limit subs
Merge pull request #404 from candlepin/dgoodwin/json-fix

Fix compliance rules for source consumer pools.
Merge pull request #406 from candlepin/dgoodwin/logging-followup

Logging touchups.
Efficiently cancel jobs
alterations for code review
Merge pull request #410 from candlepin/ckozak/efficient_job_canceling

Efficiently cancel jobs
Merge pull request #403 from candlepin/wottop/consumer-content-override

Consumer specific content set/repo overrides
Added pinsetter job blocking for owner unique jobs