Provide API to disable specific providers

- The environment variables LCB_NO_HTTP and LCB_NO_CCCP may also be used
  to control these settings from the environment

Change-Id: I1b869510645b0b8854406f07d33542083d238b88
cbc: add switch --config-transport to choose HTTP/CCCP

Change-Id: I4ddc2ac37d23ca84fddba0f28e8047879dfeb548
CCBC-234 Add lcb_cntl command to determine source of configuration

Change-Id: I2ead6c25cc6011ab5b5334ad707dd47ff0d20eb4
http: Check for empty path and use "/"

Otherwise we end up with malloc(0) and all sorts of odd stuff happens

Change-Id: I5f3cac958d5d179dc5dbe08ad60928b59c7af5b5
http: also refresh config on non-successful HTTP status

Change-Id: Ida0e4768bd300a4f11a09c8c66a2dbb062f7ff01
http: free hdr->key and hdr->value

Fixes memleak

Change-Id: Ia384389a5ea45e5098102aa3c0e1d26329e635c3
select: fixup timers

This commit adapts a timer model similar to what is used in IOCP

Change-Id: Ia5fcc3237990806c18c5fb359c2b5a1af1ce78fc
select: don't embed fd_set inside iops structure

we only use it inside the loop, so this can be a loop-local variable

Change-Id: Ibcf728333751d8c00a4bc8951dbe961875734b0c
Add 'counted' list which maintains size

This makes it easier to track the number of items within a list without
maintaining an external counter

Change-Id: I449c52c3b91e9d13230a5576f71ba4be54cf4c5a
transfer_socket: Don't perform checks if to==from

We should return when we detect the connections are idential, as the
assertions are only for actual transfers

Change-Id: Ia9ba0cc40df3c7bc494ff445c3a0c2daaaf946c3
Connmgr fixups

- Replace list+explicit counter with new 'clist'
- Replace timer_create/destroy with rearm/disarm
- Added dump function to print pool state to stderr
- Added 'lcb_async_signal' and 'lcb_async_cancel' to timer.h

Change-Id: Ibd2eaee63dbd4be24f5c1096b3c45d3edc265d0f
Increase efficiency for connection pools

This commit attempts to be a bit more judicious about how sockets are
released back to the pool. This is important in rebalance scenarios
where the configuration changes frequently and server structures are
created and destroyed.

The notable changes are:

- Don't use apply_want for READ_EVENT if we have nothing to read
- Fix up some bugs in the CCCP provider which cause it to stall, release
  a bad socket, or not acquire a proper socket
- Fix up bugs in server_io.c where it would release a timed-out socket

Change-Id: Ifa3353ae05f34175680ef2ae2db7df6666dd917d
logging refining

Change-Id: I5440750280b580f87c3088c92669c71501ec9cf6
Add time conversion macros

Change-Id: Idc5dfb08c5c54d96fe92a45ed10fd7c8cb0faf74
Actually refresh on bootstrap_incr when count gets high enoguh

Change-Id: If618cfb98afa00ce40e5f9779a45c46280260336
CCBC-316: Provide per-node config timeout

This provides a more "Semantic" bootstrap timeout by ensuring we don't
wait too long for any particular node. Useful for weeding out offline
nodes.

Behavior/API Modifications:

- Adding new lcb_cntl for this setting
- Changing timers in bucketconfig to use config_node_timeout rather than
  config_timeout
- config_node_timeout is set to 2 seconds by default

Change-Id: I12326d67934047d40bd9519e322c01685564834c
update release notes

Change-Id: I52411cf4ed34ca9636292c2b31c40c811634486a
iofactory: always use LCB_LIBDIR when loading plugins

Change-Id: Ifa28293b7ca360acc697318cb6aadea6d21b05db
Re-organize CMakeLists

The goal here is to make our code and build system more modular, with
the ultimate aim of being able to -theoretically- ship some components
as being standalone.

The first step is trying to untangle the build process - where multiple
modules can be built independently into shared or static archives and
then linked ultimately into their resultant objects.

The second step is to eliminate the NMakefile

Currently supported:

- Plugin builds (libev, libuv, libevent)
- Tools (cbc, pillowfight)
- Tests (unit-test, smoke-test, check-all)
- SOVERSION
- DLL Version information
- config.h generation
- Fat binary builds (OS X)
- Maintainer mode

TODO:

- Make things completely out of tree. Currently the configuration.h
  header is still being generated inside the tree
- Better facilities for downloading the mock server
- Create source tarballs
- Create windows zipfiles and/or installers

Change-Id: I8402f8e8e0821af2e87ca425c985017de630b0e7