Make it all work.
Created by: NilSet
This PR adds a new invariant to the block pool: Any empty blocks must be at the address of the block to the right. It also fixes a number of bugs, some of them quite serious, and also fixes some of the tests and assertions.
Fixes #13 (closed), #14 (closed), #20 (closed), #21 (closed), #22 (closed), and #23 (closed)
TODO: Optimize! TODO: Fix one test I did not understand the intent of which was failing. TODO: Update documentation.