Initiate /start request after a transport is selected in the JS client

- This is how the .NET client already behaves

#3104
Remove unnecessary Trace property from MessageBus
fix for bug #3166

Changed ObservableDbOperation to look for Updates instead of Inserts
based on changes to send.sql
Merge branch 'release' into dev
Update to JSON.NET 6.0.4
Fix JSON.NET reference in Silverlight samples
Merge branch 'release' into dev

Conflicts:
	nuspecs/Microsoft.AspNet.SignalR.Client.nuspec
	samples/Microsoft.AspNet.SelfHost.Samples/packages.config
	samples/Microsoft.AspNet.SignalR.LoadTestHarness/packages.config
	samples/Microsoft.AspNet.SignalR.Samples/packages.config
	src/Microsoft.AspNet.SignalR.Client.Portable/packages.config
	src/Microsoft.AspNet.SignalR.Core/packages.config
	src/Microsoft.AspNet.SignalR.Crank/packages.config
	tests/Microsoft.AspNet.SignalR.Tests.Common/packages.config
Update JSON.NET to 6.0.4 in .NET client for wpa81
Fixing WP8 sample references after the update of Json.Net
Fixing WP8 sample references after the update of Json.Net
BetterPath - updating path to MSBuild to use v12 required to build Windows Store projects.
Merge branch 'release' into dev
Updating nuspec for Stackexchange
AllYourGiftCardsBelongTeMe - fixing random ERROR_SHARING_VIOLATION in tests that use HttpListener

Functional tests using HttpListener tend to fail randomly with the "System.Net.HttpListenerException : The process cannot access the file because it is being used by another process" exception. This error indicates that the port a test is trying to use is already in use. Tests choose ports randomly from the 8000 to 9000 range. The problem is that on some machines some ports from this range are already in use e.g.:

The following two tests failed with the exception from above:

ConnectionFacts.RequestHeadersCanBeSetOnceConnected.HttpListener.LongPolling.89.test.trace.log                   --> HttpListener url: http://localhost:8678
ConnectionFacts+Start.ManuallyRestartedClientMaintainsConsistentState.HttpListener.Websockets.742.test.trace.log --> HttpListener url: http://localhost:8675

However netstat -ano shows that ports 8675, 8677, 8678 were already in use
TCP    10.74.232.16:8675      10.74.232.80:80        ESTABLISHED     3436   WindowsAzureGuestAgent
TCP    10.74.232.16:8677      10.74.232.80:80        ESTABLISHED     2944   WaAppAgent
TCP    10.74.232.16:8678      168.62.33.142:443      ESTABLISHED     3436   WindowsAzureGuestAgent

The fix is to verify if the port is in use before using it and if it is choose a different port from the range
Remove new usages of async/await on the server

- This change is meant to help avoid potential deadlocks caused by
   attaching to the PreSendRequestHeader event

#3176
Avoid delegate allocations introduced by removing async/await
SleepWell - adding a workaround for a race condition in WebSockets

There seems to be a race condition in WebSockets which may result in a deadlock/livelock which in turn causes a failure to the EndToEndTests. Adding a delay seems to fix the issue so we can use it as a workaround until the issue in the WebSocket implementation is fixed.
Increase test timeout since SafeCTS.Cancel() can slow down execution

- Running tests in parallel led to frequent timeouts here
Enumerate messages before completing the Subscribe callback in tests

- Subscription.Work was previously clearing the list during enumeration
Simplifying ServerSentEventsTransport
 - NotSafeForWork - Removing unnecessary SafeInvoker from ServerSentEventsTransport
 - DisposingOfDisposer - unifying request cancellation