NCBC-675: Fixed servers with FQDN not properly resolving.

If a bucket configuration returned from a Couchbase cluster contains a
fully qualified domain name instead of an IP address,
CouchbaseConfigContext will not properly resolve the endpoint, resulting
in a null KeyMapper. Upon any operation that requires the KeyMapper, the
Couchbase .Net client will throw a NullReferenceException.

Change-Id: I33a240f956492deedbca0b0015ead3c47583bb21
Reviewed-on: http://review.couchbase.org/41984
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Move CouchbaseBucket and MemcachedBucket to Couchbase namespace

Change-Id: I10843acdaeece5db304a12678b303d315d0f14b4
Reviewed-on: http://review.couchbase.org/42130
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Simon Baslé <simon@couchbase.com>
NCBC-685: provide a means of exiting the IConnectionPool.Acquire method

The IConnectionPool.Acquire method is recursive in that a thread will try
repeatedly to acquire a connection if the pool is exhausted and
IConnectionPool.MaxSize has been reached. This commit ensures that the
recursion will be broken if a set number of retries has occurred. This
value is controlled by the PoolConnection.MaxAcquireIterationCount
property which defaults to five (5) iterations.

Change-Id: I0e13fe37cea56f645d0f6e9afca6860294f37816
Reviewed-on: http://review.couchbase.org/42194
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Ensure only one config happens at a time

Change-Id: Ie0426d7a4d75f313f849b2ddf203290becb765c4
Reviewed-on: http://review.couchbase.org/42228
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Mark Nunberg <mnunberg@haskalah.org>
NCBC-689: Disable ServicePointManager.Expect100Continue by setting to false

Change-Id: I80cad1f0325077d4739467e8a3888608c8edbb20
Reviewed-on: http://review.couchbase.org/42229
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Mark Nunberg <mnunberg@haskalah.org>
NCBC-648: Forcing JsonSerialization on non-nullable ValueTypes fails

Programmatically detect value types and wrap them with Nullable<> for
JSON deserialization.

Change-Id: I73bede1e2911ecf5c6f0889bb32e24b6163498af
Reviewed-on: http://review.couchbase.org/42196
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Added documentation

Change-Id: I402dbb0ceea4e297bee7bc514529e2b54774b06c
Reviewed-on: http://review.couchbase.org/42312
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Brett Lawson <brett19@gmail.com>
Merge branch 'master' of https://github.com/couchbase/couchbase-net-client