Fixes Persister for use with StringIO (i.e. testing).
Start of some Persister tests.
More tests for the Persister.
Starts adding persistence to BinaryNodes.
Adds a level of indirection, so that left and right are refs. This way they can be loaded lazily, and the logic for loading and saving is moved out of the nodes themselves (which don't do much work anymore).
Renamed Persister to Storage.
Hooking it all up. And of course it doesn't quite work yet.
It's important to avoid blowing away the db when you try to open it.
Adds a test that uncommitted things don't make it to disk.