MB-11066: Add support for dynamically reloading memcached JSON config

Adds the ability for the memcached JSON config file to be reloaded
while memcached is running. Note that only a limited subset of
settings can be changed at runtime - see memcached.json man page for
details of these.

This is achived by adding two new binary protocol messages:
CONFIG_VALIDATE and CONFIG_RELOAD.

* PROTOCOL_BINARY_CMD_CONFIG_VALIDATE - Used to validate a proposed
  config change. Client sends the proposed JSON config file as the
  body of the request, and memcached will check if the changes are
  valid to apply to the running config. If so returns SUCCESS, if not
  EINVAL.

* PROTOCOL_BINARY_CMD_CONFIG_RELOAD - Instructs memcached to re-read
  the original config file specified at startup (i.e. the -C
  command-line option). If the config is valid applies all
  runtime-modifiable settings. Requires admin privileges.

At this stage there is no client support, other than in testapp.

Change-Id: If8c61cb4c083ffc68d2a700692a866f11c6dd318
Reviewed-on: http://review.couchbase.org/40751
Reviewed-by: Trond Norbye <trond.norbye@gmail.com>
Tested-by: Trond Norbye <trond.norbye@gmail.com>