Better support for crates in rust.

Rust's compilation model differs from some others in that, beyond the
simple cases, individual files are not often compilable on their own.
Instead, they need to be considered as part of a larger crate
(namespace) and that crate as a whole should be compiled.

This patch add an options to the rust checker to allow a file to
specify the file that represents the entire crate.  It is this file
that will be passed to rustc.

(Related to ticket #386)