Implement cargo-new

This command is used to create a new cargo repository at a destination that
previously does not exist. A separate command, cargo-init, will be implemented
to initialize an already-existing repository.

cc #21

This is currently rebased on #238
Well, actually this whole file seems to be for `cargo-compile` still.