Better support for modules 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)
Please add `:package-version '(flycheck . "0.20")` to indicate the version of Flycheck in which this option was added.