Add support for examples and external tests

This add support for `examples/*.rs` being built (as normal bin crates) during `cargo test`,
and `src/test.rs` and `tests/*.rs` being built and run (as test crates) during `cargo test`.
(In particular, there's no need to have 4 maps instead of just 1, and there's no need to collect to a temporary `Vec`.)