Initial recommit

Forked runite to its own repository. Also incorporated the important stuff
from gem's util directory into runite, and performed an extensive rewrite/conversion
on the cache stuff to both use the new util libraries and to speed up access.

We now preload the cache by extracting files and loading them into memory when
the cache is loaded, instead of storing the index and data files in memory.
This makes it faster, and will ease transition when we start accessing the client
resources in a flat directory format rather than the cached format we currently use.