Added caching...

This is the first run at caching. It caches the container listing, the
text id to values, and the asset id to title id links. This greatly
increases the speed at the cost of memory of course. But, at least for
my use, it's not much memory for a lot of speed. If it becomes an issue
it can always be improved to discard older data, but probably other
parts of the code would need to be refactored to handle exceptionally
large stores as well.

The main deficiency right now is that it assumes it's the only writer to
the store. But I'll fix that next through use of the modified area and
polling for updates.

And of course it's holding decrypted data in memory. But honestly, if
someone has that kind of access to your running process, they could
easily intercept some calls to gain access to the master key.