NCBC-299: Update Project References from Nuget to Local Project.

In the .NET solution in Github, the some of the projects are referencing
Nuget instead of the local projects within the solution. As a result,
when you pull the repo down you cannot step into the dependent code and
in some cases you need to disable features (such as logging) or you will
get a version mismatch error.

Change-Id: Ic9dc6bb82fd3fefc62f9b645ee1fc8a4a05bf162
Reviewed-on: http://review.couchbase.org/29990
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-299: Fix project references.

The last commit for NCBC-299 has a couple of errors.  One is that some
subprojects reference NewtonsoftJSON and shouldn't.  Second is that one
of the projects references the wrong thing between 3.5/4.0.

Change-Id: Ie116feb16a3c112658693bb108174856fe652ca9
Reviewed-on: http://review.couchbase.org/30035
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-310: Refactor Connection Pool

Refactored the CouchbaseNode class so that it depends upon a different
implmentation of the internal socket pool that utilizes a queue structure
instead of the stack based implmentation used by MemcachedClient. The
PooledSocket now has a new interface, IPooledSocket, with CouchbaseClient
and MemcachedClient having seperate implementations. Note that these
changes only impact CouchbaseClient instances - MemcachedClient instances
still use the older implementation. The benefits of this include: more
efficient resource allocation and management, elimination of threading
some issues related to race conditions and other re-entrency problems,
better structure and code organization, improved unit tests and
testability and overall extensibility of certain components: pools,
socket wrappers, etc.

Change-Id: I2348f60dc8c0b3304cba19753db08d9cd60e570f
Reviewed-on: http://review.couchbase.org/29832
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-316: Allow GetJson to support the retrieval of arrays and lists

Adds support to the CouchbaseClientExtensions.GetJson(…) method to 
handle the deserialization of arrays and lists of objects and not 
just individual objects.

Change-Id: I69704b922c559265b736ca54c3eee32a6aef7d5e
Reviewed-on: http://review.couchbase.org/29746
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-306: .NET GetJSON operation throws null reference exception

Add support for null values persisted for a key via the
CouchbaseClientExtensions.GetJson(…) method. This method will no 
longer thrown a NullReferenceException when the value store for a 
key is null and instead simply return null.

Change-Id: I345cb7e33b5e9f33ea22cb205de84475abf3d35d
Reviewed-on: http://review.couchbase.org/29840
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-309: Move .NET API documentation from docs repo to auto-doc

This is the first step in the process - adding the xml comments to each method
declaration of the publc API. These will be used to generate the HTML API
reference. Note, that in a MVP fashion, I did the bare minimum documentation
for each method. In future releases, the documentation should be improved

Change-Id: I7ce1a5cf2f1e286c98f1925fd8cee5b0b8e68dcf
Reviewed-on: http://review.couchbase.org/29859
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-317 Mark Sync operations as obsolete

Change-Id: I28b15eb2ee03681c1e29140742ab3e7bff1a39aa
Reviewed-on: http://review.couchbase.org/29750
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-310 Amendment: Changed socket pool implementation

Change-Id: Id1a82004ff51d51f393de519bf6b08a885028b95
Reviewed-on: http://review.couchbase.org/30139
Reviewed-by: Mark Nunberg <mnunberg@haskalah.org>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-324: ExecuteGet(string key, DateTime newExpiration) returns unexpected result codes

Change-Id: Ib9f6db0d5917490362f9c0124bdccce44b7d8da0
Reviewed-on: http://review.couchbase.org/30193
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Brett Lawson <brett19@gmail.com>
NCBC-318: Status Code list contains duplicate value

Change-Id: I5cdaaa1311c768dc128749a9ea561351faa481b9
Reviewed-on: http://review.couchbase.org/30237
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-310: Amendment #2 queueTimeout support

Change-Id: I9ddf1f0d662b0aa91cb0da2210da95a94c1cc2fe
Reviewed-on: http://review.couchbase.org/30242
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-330 - During finalization a NRE is thrown on SocketPool 

Fixed minor bug where _pool is null during finalization

Change-Id: I6858811535cbdf1f510ebaf963a0668ec79167d7
Reviewed-on: http://review.couchbase.org/30236
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-329: Ensure IOperationResult returns StatusCode on failure.

Change-Id: I6f76e749d168757721968f96923143ace7358b3d
Reviewed-on: http://review.couchbase.org/30243
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-311: Change queueTimeout default from 100ms to 2500ms

The default value for queueTimeout is currently 100ms, which is extremely
low and will unnecessarily cause queue timeout exceptions. This will increase
the queueTimeout to 2.5 seconds, which is still a relatively low amount. Note
that this only affects threads waiting on the SocketPool for a socket, not the
actual time it takes to execute an operation.

Change-Id: I43fb2368d92e936cb9d15db8b6ba48df46f13413
Reviewed-on: http://review.couchbase.org/30275
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-332: Change the default DeadTimeout to 2 seconds.

Change-Id: Ic6c07d8d64e79a7ff8ba50b14e91670a0c3fe490
Reviewed-on: http://review.couchbase.org/30277
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-333 - NCBC-310: Amendment #3 - reference cleanup when SocketPool is disposed

Change-Id: Ieba7b17f650f413edea4c29aec3cde39fac7324a
Reviewed-on: http://review.couchbase.org/30294
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-293: enhance or create new multiget to allow getting details on
missing items.

Note this is a resubmit of http://review.couchbase.org/#/c/29991/ which
became lost in some expliciable way. To make sure it's in, this change
was cherry-picked over current and fixed up.

Change-Id: I6c8d397f76c6079d501e390844b55eb72b7a2bd1
Reviewed-on: http://review.couchbase.org/30708
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-325: MemcachedClient.ExecuteGet(...) does not return error codes

Change-Id: Icba87d8096cbf4444632c518e158571fbce54d66
Reviewed-on: http://review.couchbase.org/30718
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-310: Amendment #4 - added connection pool 'growth'

This commit enables the connection pool to grow based upon resource demand
from the MinPoolSize to the MaxPoolSize.

Change-Id: I188b9852282812b85a58e5548c9c70f2645fb22c
Reviewed-on: http://review.couchbase.org/30437
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Reviewed-by: Matt Ingenthron <matt@couchbase.com>
NCBC-310 Amendment #5 - operation timeout

This commit adds timeouts to operations where there is potential for
the client to hang indefinitly.

Change-Id: Id50b6a41167b12c0d8b22d2c939a3ee8846ddf30
Reviewed-on: http://review.couchbase.org/30777
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>