HostIlE - IE11 connects to a wrong host in cross domain scenarios when a relative connection url is used (fixes #2959)

When parsing a relatinve uri with <a /> (anchor) IE11 does not provide the protocol so we fall back to using `window.document.location` to resolve connection details. However if the host could be read from the url provided by the user we should use it instead of the one from the `window.document.location`. The fix is to use the host from the url provided by the user if possible and fall back to using the host from the `window.document.location` if the host could not be read from the user's url.
Silence!

Baselining Chutzpah coverage report to prevent from showing the file as modified each time build.cmd is run.
Made HubCallerContext easier for mock unit testing

#3012
Made changes as per code review feedback

#3105
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