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`.
Hm, do we actually want this rather than just having everything in `tests/...`? And if so, should we be checking for `src/test/lib.rs` too?