SocketAwaitable: Add IsDisposed check.
Add a thread-safe buffer manager class.
Increase assembly version to 1.0.
Readme: Add code samples.
SocketAwaiter: Set IsCompleted when it completes.
SocketEx: Add IsCompleted check for fast-fail.
Add unit tests for SocketAwaiter.
SocketEx: Make IsCompleted check thread-safe.

IsCompleted check in @2329a9284a4d02e2e80d62b11410d8441bbc9fa9 didn't
lock the awaiter so concurrent access to it may escape this fail-fast
check.

Add an internal SyncRoot to SocketAwaiter and lock on it while checking
IsCompleted.
SocketAwaitable: Add context synchronization.

SocketAwaitable: Add public ShouldCaptureContext property for users to
signal whether they want context capturing.

SocketAwaiter:
* Add internal SyncContext property to allow getting and setting the
captured SynchronizationContext.

* Remove the setter of IsCompleted property and add a Complete method
that sets the isCompleted field to false and nullifies the SyncContext.

* Make both delegates that invoke the continuation to check
awaitable.ShouldCaptureContext first and use the captured context if it
is true. Also, make these delegates call the new Complete method to set
isCompleted to false and nullify the captured synchronization context.

SocketEx.OperateAsync:
* Capture the current context if the awaitable
argument's ShouldCaptureContext property is set to true.

* Replace a.IsCompleted = true parts to a.Complete().
SocketAwaitable: Expose more SAEA features.

Make SocketAwaitable expose these SocketAsyncEventArgs properties:
* ConnectByNameError
* DisconnectReuseSocket
* LastOperation
SocketAwaitable: Make Buffer access thread-safe.

Make getters and setters of both SocketAwaitable.Buffer and
SocketAwaitable.Transferred properties thread-safe by locking on
syncRoot.

Add a warning in SocketAwaitable.Buffer's documentation that specifies
checking SocketAwaitable.Transferred property after setting the buffer
may provide unreliable results.
Increase assembly version to 1.1.
Readme: Add detailed analysis and code samples.
Readme: Improve lines 19, 53 and 89.
Readme: Add Contributions section, fix line 160.
SocketAwaitable: Add a field for Transferred.

Changes to SocketAwaitable.Buffer affects SocketAwaitable.Transferred
and makes it unreliable after updating the buffer.

Add a new ArraySegment<byte> field `transferred` in SocketAwaitable for
holding the transferred data with no dependencies on the buffer.

Initialize the transferred field in SocketAwaiter.Complete and clear it
in SocketAwaiter.Reset.

Update SocketAwaitable.Clear so it will also clear the reference to the
transferred.Array before pooling.

Remove the warnings about using Transferred after Buffer from Readme.
SocketAwaitable: Mark UserToken as obsolete.

Add [ObsoleteAttribute] to the SocketAwaitable.UserToken property.
Remove unit tests regarding the user token.
Increase assembly version to 1.1.1.
Merge branch 'release-1.1.1'

Conflicts:
	Readme.md
	src/Dawn.SocketAwaitable/Properties/AssemblyInfo.cs
	src/Dawn.SocketAwaitable/SocketAwaitable.cs
	src/Dawn.SocketAwaitable/SocketAwaiter.cs