Implement Cargo.lock and cargo-update

This PR is a series of commits building off the `lockfile` branch which finishes the work on the lockfile as well as implementing the `cargo-update` command.

This PR deprecates the `-u` flag in favor of the `cargo update` command.