Isolate `nrepl-client` connection logic from CIDER

Allow `nrepl-client` to be used by non CIDER frontends.

- Frontends can control the creation of the client buffer through
  `nrepl-create-client-buffer-function`.

- Each frontend has it's own `xxx-connected-hook` which is run by
  `xxx--connected-handler`. The latter function is placed in the local
  `nrepl-connected-hook` during the client buffer initialization. Similarly for
  `xxx-disconnected-hook`.

- Rename `nrepl--init-connection-buffer` -> nrepl--init-capabilities