vcs/gitcmd: Use only stdout, ignore stderr for predictable command output parsing.

This makes it so that warnings and other non-critical messages
potentially printed to stderr do not mess up parsing of the expected
stdout put.
Command exit code being 0 is used to test if the command was successful
(returned as err value from Output).
Fixes #30.
Revert to cmd.CombinedOutput all but ResolveRevision.

There is non-trivial error handling logic that depends on current
CombinedOutput approach. Care is needed to cleanly separate the stdout
and stderr while maintaining correct error outputs. There are many code
paths that need updating and testing.
Focus on fixing ResolveRevision only for now, which I can verify
locally.
Use divided stdout and stderr output in ResolveRevision.

Use stdout for parsing command output. This eliminates possible
warnings from ruining output.
Use stderr for parsing error type and printing error message.
I'm not able to reproduce "unknown revision" text while running `git
rev-parse <bad-commit>` with my local git version; however I do get
"fatal: bad revision <bad-commit>" on *stderr* when I try `git
rev-parse <bad-commit> --`. That text does not appear in stdout.
Merge pull request #31 from sourcegraph/fix/combinedoutput-usage-for-parsing-command-output

vcs/gitcmd: ResolveRevision: Use only stdout, ignore stderr for predictable command output parsing.