extract helper functions; add 'connect*'.

'connect*' lets users supply their own WebSocketClient object to-be-used
for connection establishment.
rename for consistency.
fix type annotations; add docstring to 'client'.
let client be supplied using ':client' in opts.
Merge pull request #6 from stylefruits/ys/connect-with-client

Low-level Connect Function