Invert logic to raise long polling reconnects on the server

- Checking for "/poll" to suppress reconnects does not work since 1.0.*
  clients do not append anything to the URL of poll requests.
- Raising reconnects only  for long polling requests ending with
  "/reconnect" preserves the old server behavior
- This prevents 1.0.* clients from causing a reconnect per poll

#3044
Merge branch 'release' into dev
Added new Redis tracing
Create PreserveCulture extension method for use with async/await
Use PreserveCulture for all awaits
LostInReconnection - when the client successfully reconnected it did not clear the TimedOut/HasBeenWarned flags which could result in never invoking the LostConnection/OnConnectionSlow methods if a new timeout happened immediately after reconnecting because we would use stale values set before the reconnection happened (i.e. the client would "think" it already invoked the LostConnection/OnConnectionSlow method after reconnecting whereas it actually did not). Fixes #3046.
97%There - Creating projects for Store WebSocketTransport

Adding VS projects for supporting  WebSockets on Windows Phone 8.1.
Note:
 - Test project requires beta version of xunit (and a corresponding pre-release runner)
 - Nuget.exe had to be updated (Updating NuGet.exe to 2.8.2-beta)
 - Build.proj will be updated seperately

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch feature-StoreWebSocks
# Changes to be committed:
#	modified:   .nuget/NuGet.exe
#	modified:   .nuget/packages.config
#	modified:   Microsoft.AspNet.SignalR.sln
#	modified:   src/Microsoft.AspNet.SignalR.Client.Portable/Microsoft.AspNet.SignalR.Client.Portable.csproj
#	modified:   src/Microsoft.AspNet.SignalR.Client.Portable/packages.config
#	new file:   src/Microsoft.AspNet.SignalR.Client.Store/Microsoft.AspNet.SignalR.Client.Store.csproj
#	new file:   src/Microsoft.AspNet.SignalR.Client.Store/Properties/AssemblyInfo.cs
#	new file:   src/Microsoft.AspNet.SignalR.Client.Store/Transports/WebSocketTransport.cs
#	new file:   src/Microsoft.AspNet.SignalR.Client.Store/app.config
#	new file:   src/Microsoft.AspNet.SignalR.Client.Store/packages.config
#	modified:   src/Microsoft.AspNet.SignalR.Client.WinRT/Resources.resw
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Images/UnitTestLogo.scale-100.png
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Images/UnitTestSmallLogo.scale-100.png
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Images/UnitTestSplashScreen.scale-100.png
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Images/UnitTestStoreLogo.scale-100.png
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Microsoft.AspNet.SignalR.Client.Store.Tests.csproj
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Microsoft.AspNet.SignalR.Client.Store.Tests_TemporaryKey.pfx
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Package.appxmanifest
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Properties/AssemblyInfo.cs
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/Transports/WebSocketTransportTests.cs
#	new file:   tests/Microsoft.AspNet.SignalR.Client.Store.Tests/packages.config
#
Run Forrest, Run! - enabling running store tests in build.cmd
NugetNugget - separating wpa81 platform which will now include the portable client library and wpa81 specific dll containing WebSocket transport.
InfravisionHelpsKeepThingsClean - Adding InternalsVisibleTo for Moq to allow keep internal methods internal.

One of the WebSocketHandler.SendAsync() overloads was made public only to enable testing. Granting InternalsVisibleTo to Moq makes it possible to revert this change.
Similarly one of the WebSocketHandler.ProcessWebSocketRequestAsync was public and had parameter of WebSocket type however there is not an API that would return a bare WebSocket to the user and therefore the API is not usable from the end user's perspective.

(The main motivation for hiding these methods is that they take parameters of types that are not available on all platforms and therefore a lot of effort would be required to make the APIs consistent across platform without any apparent benefit since the methods should not be public in the first place).

Also making WebSocketHandler class abstract since it is not really usable standalone so there is no need for it to be instantiatable.
GreatDevsCopy - mimicking WebSocketTransport class hierarchy existing in the .NET client.
BobTheUrlBuilder - refactoring the code to group building urls in a single class.
LessMiserablePortable - we have some code that is specific to the portable version of the client but we don't have any tests for this code. Adding a test project for tests excersizing code specific to the portable version of the client.
Make PreserverCultureAwaiters structs like TaskAwaiter
Let'sMakeADeal - adding support for Negotiate to the store WebSocketTransport.
RavioliCompositionOverSpaghettiInheritance - refactoring usage of WebSocketHandler on the client

WebSocketHandler class is used on the server and on the client. While on the server we just instantiate this type on the client the WebSocketTransport derives from it. This blocks creating a base class for client transport which would contain a common functionality (e.g. parsing the response). After this change WebSocketTransport no longer derives from the WebSocketHandler but instantiates it and uses it internally.
IAlwaysFeltTheyHadSomethingInCommon - adding a base class for all "real" client transports (i.e. AutoTransport is excluded since it is only a wrapper) and moving common functionality.
BetterThreadSafeThanSorry - fixing UrlBuilder threading issue

The same instance of UrlBuilder could be used by multiple threads which could corrupt the internal state of the StringBuilder instance used by the UrlBuilder which results in weird exceptions. This manifested as random CI build failures. The fix is to turn the UrlBuilder to a static class (it does not need to be mocked) and create a new instance of StringBuilder each time.
NonValueAddedTax - removing WebSocketConnectionInfo private class. It does not add any value but requires dotting each time we need the connection thus cluttering the code.
Change long polling request to use same URL and POST instead of GET

- Update client protocol
- This change is intended to avoid a memory leak in IE/Chrome

#2953