Add "--list" option to `cargo`, that shows lists of installed (sub)commands by searching
directories for executables with name cargo-*.
auto merge of #316 : xanxys/cargo/master, r=alexcrichton

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.