rustpkg: Implement install command

    The install command should work now, though it only installs
    in-place (anything else has to wait until I implement RUST_PATH).

Also including:
    core: Add remove_directory_recursive, change copy_file

    Make copy_file preserve permissions, and add a remove_directory_recursive
    function.
tidy
rustpkg: Handle sysroot more correctly

In rustpkg, pass around sysroot; in rustpkg tests, set the sysroot
manually so that tests can find libcore and such.

With bonus metadata::filesearch refactoring to avoid copies.
rustpkg: Make code actually compile

oops.
auto merge of #6124 : catamorphism/rust/rustpkg, r=catamorphism

r? @graydon