Refactoring long polling transport to be able to fix bug #3227

I originally stored both connection and connectionData in class variables but then it was very hard to test because to test poll you would have to call Start() first to initialize the variables. Calling start in turn requires mocking all the IHttpClient related things because of the start/connect requests. Suddenly the unit tests for testing the Poll method became a hybrid functional/unit test that is hard to set up. Passing values everywhere is just poor man's DI. I did go back and forth with that (at least twice) because it became a bit too widespread but in the end I decided it was better for testing than having to mock half of the stack to be able to get through the connect/start sequence.