Ckozak/one subpool constraint

We're running into a problem ([BZ 1073570](https://bugzilla.redhat.com/show_bug.cgi?id=1073570)) where concurrently binding different pools that share a stacking_id grants multiple bonus pools rather than the single one that is expected.

To solve this issue, I'm pulling the source consumer and source stackId out of cp_pool into another table (cp_pool_source_stack) in order to enforce a unique constraint when a pool is stack derived.  That way concurrent binds will cause a failure.

We can look into locking around pool creation, however the scenario is going to be very rare, and the loss in performance probably isn't worth pessimistically locking stacks per owner.  In either case, we're a bit better off with a database enforcing the one subpool per stack constraint.

Migrating data to the new table is where things get fun/interesting/terrible.  We have to add cascading deletes in order to allow a pool to be deleted without violating any foreign keys, and take entitlements with it.  This will not revoke granted entitlements, but they will expire normally.

We delete all but one of the pool ids from the list of duplicates, preferring to keep pools who have granted the most entitlements.