Allow to invoke Cargo commands with name of target

Any rust Cargo projects (for example, https://github.com/Hoverbear/rust-rosetta) has multiple targets.
The --traget-name option for commands build, run, test or bench allows to debug only one target.
Add `cargo run --example`

This allows to compile and run examples using `cargo run --example NAME`.
Selecting the other binary targets is now done using the `--name` flag, so:

* `cargo test --name foo` will run the test foo
* `cargo bench --name foo` will run the benchmark foo
* `cargo run --name foo` will run the bin foo

`cargo run` falls back to the old behaviour (running the only bin target in the
project, failing if there are more) in neither `--name` nor `--example` are
present.

Closes #538