Fix deprecated method/function warnings with rustc master
Fix build breakage due to generalized type parameter and object bounds

It is worth noting that cargo was actually creating trait boxes
that contain non-static references, so I couldn't just put 'static
everywhere to appease rustc.
Refresh Cargo.lock

This brings in versions of upstream components with build break fixes
Be compatible with the stdlib for now ('static shell)
Update git2

This updates git2-rs to not use pkg-config on windows.

Closes #472
auto merge of #485 : alexcrichton/cargo/fix-for-rustc-master, r=alexcrichton

Extending #479 to use a `'static` shell instead of a `'a` shell.
Turn --git on by default for `cargo-new`.

This adds a command-line --no-git option to disable this behavior, as well as
adding a global config section for `git = false`. While I was at it I write some
documentation for the configuration format that cargo uses.