Add cargo-init, a cabal-like template generator

This independent module  initializes cargo repositories, much alike the functionality of "cabal init" for Haskell, or "dub init" for D. It allows the user to provide a name and license for their project, and have an instantly-buildable cargo package structure built for them.

cargo-init works both interactively and via command-line arguments.
Oh, I see. It's because of the `iter().map(...)`.

It would be better to just remove that:

```rust
let args = os_args.slice_from(1);
// ...
if ... & !args.iter().any(|x| x.as_slice() == "--override") {
// ...
match args {
    [ref nm, ref bl, ref auth, ..] if nm.as_slice() != "--override" => ...
}
```

That said, why is this manually parsing the command line args? It should be using `hammer`, like, e.g. `cargo-build.rs` (or `cargo-git-checkout.rs`).