New cluster configuration management (confmon)

This system introduces a new isolated subsystem for dealing with
configuration changes and updates. It provides a pull-based approach
based on the concept of configuration providers and configuration
consumers. Each specific config provider (clprovider) communicates with
the manager object (confmon) using a common API. The library core itself
does not interface with any specific provider but rather with the
confmon object itself.

Change-Id: I77cb3b4ba54b058a9ba8a3b13b860bb80aaff3c4
Reviewed-on: http://review.couchbase.org/31408
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>