Add `--name` and `--example` to cargo run

This lets us compile and run examples using `cargo run --example NAME`.
Selecting the other binary targets is now done using the `--name` flag.

`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
Add `--name` to `cargo test` and `cargo bench`

You can now run a single test/bench file by passing its name to `cargo
test` or `cargo bench`.