Rewrote arbitrary data cache system

The caching facilities in Bcfg2.Server.Cache provided basically no
features.  This rewrites that to allow for much more powerful cache
expiration, with a particular focus on interoperation between
different components and plugins to let caches be expired as
necessary.  (E.g., the Probes plugin can expire the Metadata cache.)

This does not affect any of the file data cached by Bcfg2, only the
caches that are populated with arbitrary data (Metadata, Packages,
Probes, etc.).
Options: fixed error message when bcfg2.conf is not readable
Probes: rewrite for new caching system

Substantially rewrote the way the Probes plugin caches data.
Formerly, it was structured to assume that probe data was stored in
probed.xml, with the database feature very much a second-class
citizen; this adds a proper abstraction layer between the persistent
storage and the plugin (and its caches).

Also rewrote most Probes unit tests to actually be useful unit tests,
not implementation tests.
Revert "Metadata: group_in_category fixes"

This reverts commit 35498c8b849c15632d720656d5736c4c85f76b53.

group_in_category() access data that's held on the ClientMetadata
object, and getting that data via the MetadataQuery object would be
more expensive.