Finished server side changes for protocol resolution

- Supports ranges for server protocols
- Also allows replacement of protocol resolver

#2017
Updated protocol in JS client

- Also added the feature to pass the clientProtocol in the negotiation request

#2017
Updated protocol in C#  client

- Also added the feature to pass the clientProtocol in the negotiation request

#2017
Added tests to verify protocol handling on the server

- Includes JS, C# Client, and Server
- Had to add a little bit of extensibility to the test utilities for JS to allow overriding of the WrapConnectionStart functionality

#2017