Expose retry interval and backoff settings

- LCB_CNTL_RETRY_INTERVAL (how often to retry)
- LCB_CNTL_RETRY_BACKOFF (factor by which interval increases for each
  additional retry)

Change-Id: I12a8a791f2897d17acf85ebec5da91c4f38730c7
Default retry interval should be 10ms, not 100ms

Change-Id: Idcd865054c7743d5e9a844706958ffc1846e73d0
CCBC-471: HTTP - only increment pendops once

Change-Id: I95931cbd4b1aec1fb8b0686699606058cb871203
Use v3 API for HTTP

This is still a bit rough around the edges as HTTP really goes through a
whole different code path

Change-Id: I8c783cc2bfcf7b7faf856673f51a79064aa4583d
CCBC-226: Use keepalive for views

Change-Id: I063ffcc67feee990d489816dbbd184e9affe7ad3
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