Only send Compliance event when compliance changes

Create an MD5 hash of the key parts of compliance
and the consumer when compliance is calculated
and check it against the current hash value that
is stored on the consumer before sending compliance
events.

There is a possibility of collisions with this
approach, meaning an extra event will be sent,
but this is not a big concern.
Hash compliance with SHA256

Hash the compliance data with two
algorithms to minimize the chance of
collisions.

Store the SHA256 hash instead of the MD% one.
Merge remote-tracking branch 'origin/master' into compliance-hashing
No longer salt compliance with md5 of data
Do not check Entitlement.updated when generating hash

Because we make changes to Entitlements that do not
affect compliance, we can't just check the last
updated date. Instead check the id and the quantity.
Most other data comes from the pool.

It is Ok to check last updated date on the pool
as we want to capture compliance any time that
pool data changes.
Merge pull request #787 from candlepin/mstead/compliance-hashing

Only send Compliance event when compliance changes