Split ClientInterface -> ClientListenerInterface

- Everything that is related to listener has been moved from ClientInterface to
ClientListenerInterface. This should make each interface more light.
- Although theoretically not needed, ClientInterface extends ClientListenerInterface
just for the sake of IDE autocomplete.