Deal with different encodings of Cargo.lock

On windows, git will check out files with different line endings causing the
same serialized resolve to be resolved slightly differently. Instead of
comparing contents, this commit alters by testing whether the decoded resolve is
equivalent to the to-be-written resolve and only aborts writing if the two are
equal.
auto merge of #314 : alexcrichton/cargo/hurray-for-windows, r=wycats

On windows, git will check out files with different line endings causing the
same serialized resolve to be resolved slightly differently. Instead of
comparing contents, this commit alters by testing whether the decoded resolve is
equivalent to the to-be-written resolve and only aborts writing if the two are
equal.
Register new snapshots

These snapshots have the lockfile plus the per-target fingerprints. This also
additionally adds a lockfile to the repo for all our deps.
auto merge of #309 : alexcrichton/cargo/snapshots, r=wycats

These snapshots have the lockfile plus the per-target fingerprints. This also
additionally adds a lockfile to the repo for all our deps.
Use same method to load manifest with doc sub-command
auto merge of #317 : jdeseno/cargo/doc-manifest-path, r=alexcrichton
Update the lockfile when deps are modified

Closes #314
auto merge of #323 : alexcrichton/cargo/issue-314, r=wycats

Closes #314