Support for customising the internal tree structure

We anticipate providing support for octrees where each node must store
extra data. To avoid code duplication, we've had to provide some
indirection: rather than calling Node, Singleton and Empty directly,
each method now makes new tree structure by looking up self.node,
self.singleton and self.empty, which are expected to be static class
variables.
New layout, storing tests in a dedicated directory.
The skeleton of a "blob octrees" class. Not usable yet.