Use "$PWD" instead of `pwd` in install instructions

There's no need to promote the use of the `pwd` command when shells
export the current directory as `$PWD`. Using `$PWD` makes the
commandline work in fish as well. Additionally, quote the variable so it
works properly even if the cwd has a space in it.
Refactor git rev handling infrastructure

This commit unifies the notion of a "git revision" between a SourceId and the
GitSource. This pushes the request of a branch, tag, or revision all the way
down into a GitSource so special care can be taken for each case.

This primarily was discovered by #1069 where a git tag's id is different from
the commit that it points at, and we need to push the knowledge of whether it's
a tag or not all the way down to the point where we resolve what revision we
want (and perform appropriate operations to find the commit we want).

Closes #1069
auto merge of #1074 : alexcrichton/cargo/issue-1069, r=brson

This commit unifies the notion of a "git revision" between a SourceId and the
GitSource. This pushes the request of a branch, tag, or revision all the way
down into a GitSource so special care can be taken for each case.

This primarily was discovered by #1069 where a git tag's id is different from
the commit that it points at, and we need to push the knowledge of whether it's
a tag or not all the way down to the point where we resolve what revision we
want (and perform appropriate operations to find the commit we want).

Closes #1069
auto merge of #1100 : kballard/cargo/tweak-readme-install-instructions, r=alexcrichton

There's no need to promote the use of the `pwd` command when shells export the
current directory as `$PWD`. Using `$PWD` makes the commandline work in fish
as well. Additionally, quote the variable so it works properly even if the cwd
has a space in it.
Merge remote-tracking branch 'upstream/master'