Pooled random access thing

For review. This implements changes to RandomAccessThing, including a pooled version, which uses a fixed number of fd's at any one time regardless of how many PooledRandomAccessFileWrapper's are open, but which supports a lock-open operation so that we can avoid having to open and close in the middle of a big operation. This is essential for the new post-db4o client layer, but isn't used by anything yet (although we do use RandomAccessFileWrapper's in a few places and could conceivably replace them with the pooled variety).
Writing this as ```if(!closed && lockLevel != 0)``` instead of the negated disjunction allows for easier recognition of exactly when this condition actually holds.