Share index of blocks between pagecache_impl_t

Implement pagecache_blockmap_t as replacement for blockarray_t.

Integrate object blockmap of type pagecache_blockmap_t
into global processcontext_t.

Add pointer to threadcontext_t to every allocated pagecache_block_t.
Add error check which compares threadcontext to own
with an atomic op (read-op or compare-swap-op) to ensure
that blocks are not used from more than one thread.

Replace blockarray_t in pagecache_impl_t with fixed size pagecache_blockmap_t.
Now pagecache_t supports only a preconfigured size of memory.
But this allows blockmap to be shared between pagecache_impl_t of
different threads without any rwlock_t except some minimal use of
atomic ops.

Remove parameter pagecache_t from interface of blockarray_t.
blockarray_t now uses always pagecache_maincontext().