Drastically reduce use of Subscription during bind.

Most of this code predates the copying of product attributes onto pools.
As a result we were passing subscription all throughout the bind /
create certificate code, and either not using it, using it to
look up products for their attributes (which are already on the pool),
or using it for start/end dates or contract info (also already on the
pool).

Eliminate almost all usage of Subscription by going to the data that is
copied onto the pool.

Removed a pre-condition check during bind that entitlement end date
matches subscription end date. This has never triggered as far as I
know, and is a refresh pools problem regardless, not something we
actually want to stop here.

One remaining use of subscription is optional, and a shortcut to reduce
calls to product adapter. If no subscription is present, we look each
product up using the pool's data.
Add an expired pools job.

Search every 4 hours by default for expired pools. If any are found,
delete the subscription, revoke the entitlements, and delete the pool.

This will in turn trigger re-parenting of any derived pools if
applicable.

Conflicts:
	src/main/java/org/candlepin/controller/PoolManager.java