Made Hubs more testable.

- Introduced new interface IHubCallerConnectionContext
- Changed IHub's Client property to that instead of the concrete class
- Added tests demonstrating how to use the new extensibility to mock method calls

#1899