Added ability to provide an interface for client methods via Hub<T>

- T can be an interface that declares void or Task returning client methods

#2449
Fixed up DemoHub sample