More compact pool using one indirection level
Isolated object removal from pool

Object removal can cause issues when performed while iterating over
the pool. Thus, the deletion operation is postponed until pool_upd()
is called, when it is safe to do so.
Fixed iterations through pool objects