Add guest_limit attribute to compliance

guest_limit is a new global attribute type, its compliance may depend
upon any or all other subscriptions on the system.
The highest attached guest_limit (or -1, which is unlimited)
is applied to every subscription with a guest_limit.

Added a "guest_limit" candlepin capability
Rules uses listByConsumerAndDate to get consumer entitlements

This will require slightly less json serialization.  We could
theoretically remove the check from inside of compliance,
but I like that one as well to block problems from cp
version differences.

Fixes a problem that would have come up with the new global
attribute, I was checking all of them, not only the ones with
a valid date in ComplianceRules.isEntitlementCompliant
ComplianceRules.isEntitlementCompliant now requires date

Because entitlement compliance can depend on any other
entitlement (guets_limit) we must pass all entitlements
on a given date into the rules.