Added tracking for the negotiate request so calling stop properly aborts the request.

- Without aborting the negotiate request starting and stopping in quick succession can cause multiple active ajax requests attempting to connect.

#2601
Added test to verify hub event handlers are only triggered once per binding.

- This is a multi-purpose test to verify 3 bugs.

#2187
#2160
#2190
Added a test to verify when we start->stop->start that all deferred's are rejected or resolved correctly.

#2189