Update for recent Rust and migrate to Cargo.