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>
Refactor boilerplate I/O for non-critical paths

This patch adds an 'easy' mode - so I/O consumers which aren't in the
critical path (i.e. config updates and HTTP handlers) can use a single
group of functions for both v0 and v1 I/O.

Note that the paired v0/v1 I/O is still fully supported and is used by
the 'server' code. We might want to switch to it if it doesn't impact
performance too much :)

Change-Id: Ie199e184bd25c4b14f4a13540ef5c9ce85e1b003
Reviewed-on: http://review.couchbase.org/31424
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Always unset instance->wait when done waiting

Change-Id: I4b5b9ab8a0d910859e30875f1cae44d2a09d6347
Reviewed-on: http://review.couchbase.org/31740
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Only use 'state_listener' if configuration has changed

This screws up some of our tests otherwise..

Change-Id: I55ffc9f233a999466b1fabdeaa8f529f1001a5a4
Reviewed-on: http://review.couchbase.org/31824
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Refactor negotiation code to not require server struct

Now we use a bare connection object rather than a server structure.

Change-Id: I8d0b2218af1781bb2cdf6cc1132f211f2d90fdb3
Reviewed-on: http://review.couchbase.org/31425
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Mark Nunberg <mnunberg@haskalah.org>
Remove ringbuffer_aligned from server_parse

This is already done in packetutils

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