Revert "Be compatible with the stdlib for now ('static shell)"

This reverts commit a601d049feff5768b0d99b9fcec807b277fa4c81.
Add back fix for cross compile tests

This change was accidentally included in the reverted commit.
Implement git authentication

This commit updates git2-rs to get the implementation of the authentication
callback in libgit2. Additionally this specifies the callback for whenever we're
cloning into the database or updating submodules.

Currently cargo will *not* ask for user input, but rather require you to have
authentication configured in git through some other means. There are currently
two primary methods of doing so:

1. Any SSH key in the local ssh-agent will be used for authentication with SSH
   repositories.
2. The `credential.helper` interface (as specified by gitcredential(7)) has been
   implemented in git2-rs to allow for picking up of storage of passwords in the
   local git cache or keychain.

If these two methods fail, then there will likely be an authentication failure.
Interactive prompts for authentication have not been implemented as there is no
method to currently enter your password into the terminal silently.

A consequence of this commit is that cargo now depends on libssh2. A package was
created to create a static copy of libssh2, and this is now linked into cargo by
default.

It turned out that just building libssh2 was quite a beast in and of itself on
windows. The primary stickler point is that on the current release, 1.4.3,
libssh2 requires openssl on windows. At this time I don't want to pick up a
dependency on openssl for windows, and it turned out that the unreleased 1.4.4
version has a new backend for windows not based on openssl, but rather windows's
cryptography API.

The current bundled version of libssh2 is 1.4.4 with some light modifications to
actually build on windows (wow that was hard). All in all, we're now statically
linking to libssh 1.4.4 (not a runtime dependency).

Closes #493
auto merge of #503 : alexcrichton/cargo/issue-493, r=brson

This commit updates git2-rs to get the implementation of the authentication
callback in libgit2. Additionally this specifies the callback for whenever we're
cloning into the database or updating submodules.

Currently cargo will *not* ask for user input, but rather require you to have
authentication configured in git through some other means. There are currently
two primary methods of doing so:

1. Any SSH key in the local ssh-agent will be used for authentication with SSH
   repositories.
2. The `credential.helper` interface (as specified by gitcredential(7)) has been
   implemented in git2-rs to allow for picking up of storage of passwords in the
   local git cache or keychain.

If these two methods fail, then there will likely be an authentication failure.
Interactive prompts for authentication have not been implemented as there is no
method to currently enter your password into the terminal silently.

A consequence of this commit is that cargo now depends on libssh2. A package was
created to create a static copy of libssh2, and this is now linked into cargo by
default.

It turned out that just building libssh2 was quite a beast in and of itself on
windows. The primary stickler point is that on the current release, 1.4.3,
libssh2 requires openssl on windows. At this time I don't want to pick up a
dependency on openssl for windows, and it turned out that the unreleased 1.4.4
version has a new backend for windows not based on openssl, but rather windows's
cryptography API.

The current bundled version of libssh2 is 1.4.4 with some light modifications to
actually build on windows (wow that was hard). All in all, we're now statically
linking to libssh 1.4.4 (not a runtime dependency).

Closes #493
Don't show `Fresh` by default

But still show it with --verbose

Closes #473
Remove an outdated module

Closes #512
Make docs more generic
Update output to match latest cargo build
Add a note about required build tools and packages

Closes #518
Don't run cargo as root during `make install`

This rejiggers the dependencies for `make install` to only copy files into the
destination, never assemble anything. This adds a hard requirement that `make`
is executed before `make install`.

Closes #519
Don't deadlock when a dep has no libs
auto merge of #513 : bkoropoff/cargo/revert-static, r=alexcrichton

This reverts a commit that worked around an overly restrictive lifetime bound on the `Writer` impl for `Box<Writer>` in libstd.  Now that this restriction has been lifted, the workaround can be reverted.
auto merge of #522 : EduardoBautista/cargo/update-docs, r=alexcrichton

This PR will make the guide more generic in terms of directory paths and crate information.  It also
updates some outdated output.
Update libssh2-static-sys to build on msys2
Mention the name of a package in a custom build failure

Closes #530
auto merge of #515 : alexcrichton/cargo/issue-472, r=brson

But still show it with --verbose

Closes #473
auto merge of #516 : alexcrichton/cargo/issue-512, r=brson

Closes #512
auto merge of #527 : alexcrichton/cargo/build-issues, r=brson

Related issues in the commits.
auto merge of #529 : alexcrichton/cargo/msys2-build, r=brson
auto merge of #532 : alexcrichton/cargo/issue-530, r=brson

Closes #530