Add a cargo-doc command

This is blocked until https://github.com/rust-lang/rust/pull/15939 lands, but in the meantime I figured I could get some eyes on this to make sure I'm sane.

Closes #130
This seems... bad. Someone creates `doc/...` with a variety of handwritten docs (not realising that this is cargo's build directory), and runs `cargo doc`, losing everything.

Maybe it should be `target/doc` too?