New caching

New cache code. Did this during the flight.

As long promised, here's an unified ODB object/parsed object cache that transparently upgrades between the two of them. It uses `khash` as the backend.

TODO:

- [x] Settings setter/getters for cache tuneable parameters
- [ ] Expiration of old entries (lru? random?)
- [x] Size calculation for parsed objects

wat