Server changes to support long-polling keep alives

#1781
Support long-polling keep alives on the JS client

#1781
Support long-polling keep alives on the .NET client

#1781
Disable keep alive checks if there is a LongPollDelay

- Ensure we don't timeout the connection because there is a delay between
  poll requests
- Disable keep alive checks  if the server didn't send back the LongPollDelay
  as part of the response to /negotiate. That indicates the server is running
  an older version of SignalR that doesn't send long polling keep alives.

#1781
Start testing the long-polling transport in KeepAliveFacts

#1781
Prevent functional test from hanging
Make some tests async to avoid thread starvation