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