Added linkedStackId field/column to Pool

This property will be used to signify that a pool is
derived and is linked to the specified stack (stack id)
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
Create sub pool
Removed circ dependency (PoolCurator <--> Enforcer)

Listing available pools should now be done through the
PoolManager instead of directly through the PoolCurator.

The PoolManager now does the post filtering (rules pass)
when listing available pools for a consumer, keeping the
business logic out of the curator.
Removed PoolCurator from Refresher
Removed PoolCurator from PoolResource

All pool operations now go through the PoolManager
Removed PoolCurator from OwnerResource

All invokations on the PoolCurator now go through the PoolManager
Remove unused PoolCurator arg from refresher
Removed PoolCurator from ActivationKeyResource

All invokations are now going through the PoolManager.
Removed PoolCurator from the ConsumerResource

All invokations now go through the PoolManager
Fixing checkstyle issues
Creating sub pools take 2
Sort out stack derived pools during refresh.
Fix a merge problem.
Add source consumer to pool.

For stack derived pools, the link to a consumer if extremely weak, we
have to assume the requires_host attribute is set and that may not
always be the case for derived pools. Store it explicitly instead for
both stack, and entitlement derived pools.
Rename linked stack to source stack for consistency.

Matched sourceEntitlement today.
Move stack derived code into pool rules.

This is a good fit for refresh pools code, and has some potential for
overlap with normal update pools path which I'm still trying to get
sorted out.
Uncomment pool helper stack derived code.
Hook up refresh for floating pools.