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).
The slowness is caused by using the wrong datastructure for ```closables```. Use ```LinkedHashMap``` instead, where ```pollFirst()``` may be replaced as follows:
```java
private PooledRandomAccessFileWrapper pollFirstClosable() {
    synchronized(closables) {
        Iterator<PooledRandomAccessFileWrapper> it = closables.iterator();
        if (it.hasNext()) {
            PooledRandomAccessFileWrapper first = it.next();
            it.remove();
            return first;
        }
        return null;
    }
}
```