SignalrNativeClientAndTheTemplateOfDoom - untemplating websocket_transport

casablanca websocket_client returns websocket_incoming_message. However because there is no way to set the websocket_incoming_message response contents externally testing scenarios where messages were received was not possible. To make the code testable we would have to change the template type to something that returns pplx::task<utility::string_t> instead of pplx::task<websocket_incoming_message> which meant we could not use the casablanca websocket_client directly as the template type which was the main point of using the template in the first place. As a result the static polymorphism (i.e. template) is being replaced with runtime polymorphism (base pure virtual class).
GettingStarted - taking care of connection_state when starting connections
ThisWasTheProblem - websocket_transport no longer captures this pointer

Capturing `this` pointer in task lambdas is problematic because the task may run after the object gets out of scope or is destructed. The websocket transport tasks were rewritten to not capture `this` pointer anymore. In the future in cases where we need to be able to access members of `this` we will pass it as a smart pointer.