clearer config with categories, better cache

this commit closes issue #49: pythonize the cache
----------------------------
turns out having the cache be a class made a lot of sense.  so, cleaned
up the file, added unit tests, and used better naming.

this commit closes issue #50: cache settings in config file
----------------------------
in adding the cache information to the config, it make sense to break
the cache out into orthogonal categories, so now it consists of
channels, cache, and general sections, which should make sense and have
more logical groupings of settings within each section
Merge branch 'i49=cache-module' into develop