Fix ODE in client caused by setting AbortResetEvent after abort timeout

#1848
Prevent deadlock when aborting transport in .NET client

- If an HttpBasedTransport is already disconnected when Abort is called,
  Abort should complete immediately
Dispose IResponse in ReadAsString
CompleteAbort instead of TryCompleteAbort when abort request fails
Make sure exceptions on close are observed for websockets.

#1846
Ensure "reconnect" instead of "poll" is appended to reconnect requests

- JS client

#1794
JS test to ensure "reconnect" is appended to reconnect requests
Ensure "reconnect" is appended to path on reconnect attempts

- .NET client

#1794
.NET test to ensure "reconnect" is appended to reconnect requests
Updated /reconnect test to use both persistent and hub connections
Validate the parameters for ServiceBusScaleoutConfiguration.
Remove beta from version.
Increased timeout in reconnect test
Refactor SQL message bus
- Use events to flow changes instead of passing delegates everywhere
SQL message bus changes:
- Suppress warning
- Move declaration to tighter scope
- Put ++ on its own line in the test
Added a reconnect error detection algorithm

- The algorithm waits progressively longer to trigger reconnect
depending on how many times the transport reconnects and then instantly
fails.
- It ultimately depends on the Error handler to be triggered before the
Reconnected event trigger to keep the transport in the "Reconnecting"
state.  This will always work because the Reconnect trigger will wait
longer the more times it fails to reconnect

#1809
Added a JS functional test to verify correctness of infinite reconnect fix

#1809
Changed back off algorithm to exponential

#1809
Fix hang in StreamExtensions.WriteAsync

- Don't use Task.Factory.FromAsync in StreamExtensions
- Use WriteAsync and ReadAsync directly in StreamExtensions on .NET 4.5

#1874
Copy install.sql to bin on build