Move the block pool to a seperate structure, maintaining the invariants.
Created by: ticki
This shall expose certain methods, which pass from one consistent state to another, e.g.
The order-preserving searching should be verified statically. Either by having a newtype containing a unique "lock", used to changing the order, or through some region hackery.