Create hg repo with --hg flag on cargo new

Allows the client to initialize a mercurial repo when creating a new cargo project with `cargo new --hg`. This would close #510.

This is my first time writing code in rust outside of a toy program so please feel free to tear it apart or suggest an alternative solution.
This is actually losing a bit of information because the `cmd_result` has more contextual information like the stdout/stderr of the process. It should be ok to just use `try!` here, you shouldn't have to define your own `VcsError` struct/enum. The `human` and `internal` error-creation functions should probably be good enough.