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.

Also see #386
Add tests for flycheck-rust-crate-root [#417]

Based on code shown in #386
[Fix #417] Merge branch 'rust-crate-root'

* rust-crate-root:
  Add tests for flycheck-rust-crate-root [#417]
  Better support for crates in rust.
Update changelog, credits and texinfo manual [#417]