`cider-connect`: auto-detect ssh hosts and all running repls on local and remote hosts

Two main changes:

 - `cider-connect` now interactively asks for host from a combined list of
   machine-wide ssh configuration and `cider-known-endpoints`.
![cider4](https://cloud.githubusercontent.com/assets/1363467/4297048/6562faf2-3e03-11e4-91f4-6619b7475736.png)

 - Once the host has been selected `cider-connect` locates all running instances
   of lein servers. The machine must have `ps` and `grep` programs in the bin
   path.
![cider5](https://cloud.githubusercontent.com/assets/1363467/4297049/6a9982de-3e03-11e4-92e9-b6f88fc43e97.png)

The algorithm lists user processes with `ps` and retrives lein paths , then searches for `nrepl-port` files. This detection works fine if you run one server per project. If you run more servers at the same time lein will overwrite that file and will eventually delete it on first server exit. Hopefully this issue will be sorted soon in technomancy/leiningen#1686. 

It will probably not work on windows out of the box, but should not break anything.

Inlining code that complex in a `let` reduces readability a lot.  Extracting this would be easy.