Implements subcommands enumeration

Invoking cargo with new "--list" option now shows list of installed subcommands. (see #270)

p.s.
The code is less functional-style than I'd like it to be. Please let me know if there are smarter ways to write them.
Existence of directory is (implicitly) checked by later `readdir` or `exists`, and doing check here doesn't increase efficiency (nor readability, IMHO).

I'd rather `filter` all directories (after adding $PATH) just before returning `Vec`, if I were to make sure all directories returned by this function really exists.