Allow JSON to be retrieved as a string

Motivation
----------
In certain scenarios, when a POCO is stored as JSON, you may want to
retrieve the string representation of that JSON. This patch allows you to
retrieve the value of a key that was stored as a JSON object as a string.

Modifications
-------------
The DefaultTranscoder was modified so that if the type of T is a string
and the common flag value is JSON, the client will deserialize the value
as a string.

Result
------
You can now retrieve a value stored as JSON and convert it to a string.

Change-Id: Iecc0b12ff9dcdfcff7ca330f0b0dcf8afe9988d2
Reviewed-on: http://review.couchbase.org/44604
Reviewed-by: Simon Baslé <simon@couchbase.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-733: use given transcoder in Set operation

Motivation
----------
Contrary to the Insert operation, Upsert doesn't seem to take the given
serialization settings into account. For example, when configuring the
serializer to use PascalCase, upsert still stores camelCase.

Modifications
-------------
Made every call to the Set operator (upsert) take a ITypeTranscoder in,
as is the case with Add (insert).
Removed the constructor on Set that didn't offer to pass a transcoder.

Modified every tests that used the Set operator.

Added a test in CouchbaseBucketTests that ensure the custom setting is
picked up in Upsert.

Fixed a typo that would get the _transcoder attribute never initialized
in ConfigContextBase.

Result
------
Tests pass, Upsert operation now correctly takes SerializationSettings
into account.

Note: GetSetPerformanceTests.Test_Timed_Execution was also previously
failing. Tracked in NCBC-751.

Change-Id: I08c344ce7c7654c6e55cf5ce22fcf12183cb1268

Conflicts:
	Src/Couchbase.Tests/IO/Operations/GetSetPerformanceTests.cs
Change-Id: If3fe7c4985733951147ab974e179b1cb60448e5c
Reviewed-on: http://review.couchbase.org/44620
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-753: Fix TimeSpan.ToTtl and test

Motivation
----------
Test in TimeSpanExtensionsTests was failing.

Modifications
-------------
This allowed to fix the method: the "<=" needed to be used to choose
the correct conversion (timestamp strictly over 30 days).

Additionaly in the test "Greater" assertion was used instead of "Less".

Result
------
The test passes and the conversion to timestamp is correctly only done
when strictly over 30 days.

Change-Id: I5d018957522d97ff994c2f2bdb119303529faa66
Reviewed-on: http://review.couchbase.org/44610
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
NCBC-755: Update SslConnection to use byte[] Send(byte[] buffer) overload

Motivation
----------
This is a regression of the newer SAEA IO - When an UseSsl is enabled, the
client will use a different connection class (SslConnection) which
overrides a different virtual method than the Connection class. The
DefaultIOStrategy code was changed to use the override mentioned in the
title of this ticket which not implemented, thus a NIE is thrown. it also
fixes and resolves and issue related to NCBC-694 where the custom ports
settings are not being honored.

Modifications
-------------
The byte[] Send(byte[] buffer) method was overridden and implemented to
support sending and recieving of memcached requests/responses in
SslConnection. The IPEndPointExtensions class was refactored to better
abstract the creation of IPEndPoints from the cluster map configuration.
SocketEventAsyncArgs was modified to support a buffer. Finally, an new
class and interface was introduced to bridge the two cluster map node
types (Nodes and NodesExt) that are now being used: INodeAdapter.

Result
------
When SSL is enabled, the client will use the appropriate ports, types and
overloads to support encryption of data between clients and server.

Change-Id: Ia7276a73011613fad1124989e5522af3d5547d52
Reviewed-on: http://review.couchbase.org/44561
Reviewed-by: Brett Lawson <brett19@gmail.com>
Tested-by: Jeffry Morris <jeffrymorris@gmail.com>
Merge branch 'master' of ssh://review.couchbase.com:29418/couchbase-net-client into n1ql-dp4