CCBC-226: Use keepalive for views

This changeset creates a socket pool (lcbio_MGR) instance for HTTP
connections. In order to avoid situations where a pooled connection is
no longer functional, its use scope is limited to view requests and the
socket is only placed back into the pool if the underlying parser object
(via http_parser) indicates that the connection is keepalive-enabled.

Change-Id: I063ffcc67feee990d489816dbbd184e9affe7ad3
newconfig: update ht_nodes when receiving new config

This lets lcb_get_server_list work properly to receive new nodes

Change-Id: I5b4a06c5a83f0f5db5f21e89ec4bd6195cc9d6a4
mcserver: timeout scheduling logs should be DEBUG

These don't reflect any kind of state change or error notification

Change-Id: I534237c2c52236ef02df090fcd348fe38e41d944
CCBC-456: Replace 'abort' with more 'robust' equivalent

Stuff might still crash, but hey, we tried.

Change-Id: I9c4f4a01cc81a1964a311d9924ea83af2b11cf63
cmake fixups (gtest_zip_path)

Change-Id: Ida7aa19665e72ec8539d2a02b9a5366901194bd4
Add multi threaded functionality

This commit adds multi-threaded functionality within libcouchbase. It
works by running a specialized event loop in a dedicated thread, and
using locks to wait and submit operations to the library.

This commit also aims for _API_ compatibility with existing code, so
that newer APIs do not need to be used in order to cooperate with
multiple threads. These wrappers of course are a bit CPU intensive but
work quite well for simple code, or for the sake of porting an existing
lcb-wait based application over to the threaded code.

The wrapping is done partly via dedicated functions, and partly via a
Perl script which generates the proper stubs that can masquerade
themselves as normal API functions to the preprocessor.

WIP because of tests. Many more tests. And API sanity

Currently provided:

- I/O plugin for MT
- mt.h header file
- cbc-mtstress to test and stress the multi-threaded functionality

Change-Id: I783b74bf04f3b818d59610a18bea4435994012c6