wharf aggressively destroys containers, they must be periodically renewed

The major change is that checked-in containers are destroyed instead of being
returned to the pool. Also moved all checkin/checkout/renew lifecycle stuff
into app from interactions, since the destroy-centric behavior never really
interacted with docker, and doesn't really need to be in a separate module.

The balance_containers job got a pretty major overhaul, with a strong focus
on filling up the pool before moving on to stopping and then destroying used
containers. Along with some tweaks to checkout, doing a checkout from an
exhausted pool should be far less painful.