Quit with an error if cluster_settings or remote_cluster_settings are in...

...valid

Fixes https://github.com/Metaswitch/cpp-common/issues/171. Tested by:

* making sure Sprout can start up normally
* creating a blank remote_cluster_settings, restarting Sprout and checking for an error log
* blanking out cluster_settings, restarting Sprout and checking for an error log
* blanking out cluster_settings, SIGHUPing Sprout and checking for an error log
I was trying to avoid having to cast it back to a MemcachedStore*, but yes, `!((MemcachedStore*)mstore->has_servers())` doesn't look that bad.