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).
Since ulimit will most likely be low, memory overhead is not interesting.
LinkedHashMap has the additional advantage of a constant-time
```contains``` if we may need it. I would prefer using the proper
datastructure for scalability, but Deque should be usable for now.