cache now configurable and may be used separately

for reading and writing of cache files. That is, you can read cached
settings from somewhere and write them to somewhere else via configuration
<cache> parameters "read_location" and "write_location" instead of just
using "location".

Change: Only cachable settings from checks that returned "true" (that is,
ran successfully) will be written to the cache file.