Add performance counters to measure current connections by transport
Keep previous logic for updating ConnectionsCurrent PerfCounter.
Merge branch 'dev' of https://github.com/SignalR/SignalR into dev
Re-add connection counter methods for longPolling transport (merge conflict resolved)
Allow HubConnections to be used in Crank

- Created IConnectionFactory as injection point for developers to
customize how a Connection is created
- Created DefaultConnectionFactory to retain behavior of creating a
regular Connection
- Modified Crank client to compose the IConnectionFactory dependency
using MEF. If no candidate is supplied by an external assembly, the
client will automatically use the DefaultConnectionFactory

#3000
Fix summary comments and descriptions in PerformanceCounterManager.
Added IUntrackedDisposable and blacklisted in DefaultDependencyResolver.

- DefaultDependencyResolver will now no longer retain instances to IDisposables that implement the special marker interface IUntrackedDisposable.

#3208
Addressed code review comments in test cases.
Merge pull request #3286 from BrandonLWhite/bug-3208

Fixed memory leak of IHub instances. This resolves #3208.  DefaultDepend...
Fix Code Analysis error
Merge pull request #3099 from ermontgo/dev

Allow HubConnections to be used in Crank
Merge pull request #2971 from thomaswr/dev

Add performance counters to measure current connections by transport
Handle transport failures occurring in the connecting state

- In the event of any transport error prior to the init message,
  the transport should immediately stop and allow the connection to
  fall back to another transport.
- In the event of any transport error during the start request,
  the entire connection should immediately be stopped
Remove the JS AppDomain restart test

- This test proved unreliable with long polling which would not always
  go into the reconnecting state if the restart was in between polls
- The restarting AppDomain could cause other tests running concurrently
  locally or in TestSwarm to fail
- The JS test is replaced by an equivalent .NET client functional test
DontDieInTheStore - handling exceptions in receive in websocket store transport

If an exception happened while reading a message using the websocket store transport we would not handle. As a result it would be bubbled up and would crash the user's app. The user have no way of catching this exception. The fix is to catch exceptions and report them to the user using the IConnection.Error and to close the websocket to enable reconnect logic.