Added blanket.js for JS code coverage

Resolves #1625
UncoveringTheBlanket - Disabling blanket when running tests from command line.

When running tests from command line blanket has to be disabled otherwise QUnit.Start() will be called twice which causes a "global failure". Note that chutzpah has an option (/coverage switch) to collect code coverage and is using blanket (sic!) to do this.
DontPublicizeInternalAffairs - changing visibility of OnReconnecting from public to internal (fixes #3005)

OnReconnecting is not meant to be used by end users and therefore should not be public.
TSPCleaningSolution - fixing command line and VS build warnings
Remove inefficient/unnecessary command messages

- Stop publishing messages whenever a transport connects/reconnects
- Stop publishing messages whenever a transport connection is lost
Add param to PC.OnDisconnected to distinguish clean/unclean disconnects

- A clean disconnect indicates the client called stop
- An unclean disconnect indicates the client timed out
- A timeout may or may not mean the client reconnected to another server
Add param to Hub.OnDisconnected to distinguish clean/unclean disconnects

- A clean disconnect indicates the client called stop
- An unclean disconnect indicates the client timed out
- A timeout may or may not mean the client reconnected to another server
Trigger OnConnected with a /start request

Triggering OnConnected while handling the /connect request made it
difficult to report errors and send/process messages while OnConnected
was running.
Stop blocking transport WriteQueues

- Always return a valid Task from ForeverTransport.EnqueueOperation
  allowing us to reduce allocations inside of Subscription.Work
- This will prevent older clients that don't make a /start request from
  receiving proper errors when OnConnected throws
Ajax logic unification in the JS client
Reindent calls to the new transportLogic.ajax function in the JS client
Use /start requests to connect - JS Client

- Include the client protocol in the query string of all requests
Use /start requests to connect - .NET Client

- Include the client protocol in the query string of all requests
Stop sharing MyReconnect instances in our tests

- There must be only one PersistentConnection per request