Implement PageCache for btree

Implements a user space cache for filesystem access.
The cache allows access to fixed size blocks. This will be extended
to implement asynchronous file access that bypasses
the operating system's caches.

Related to issues #1 and #8.