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)
We need to shorten this docstring.  It is too verbose, and exhibits details about the implementation that are entirely transparent and hence irrelevant to the user.  The user won't notice which file is effectively passed to `rustc`, so we don't need to document that.

In my opinion all that the user needs to know is that the variable holds the path to the Crate root file, relative to the current buffer, and that the Crate root is used to properly resolve internal references.

I'd remove the subsequent example and paragraphs, and shorten this paragraph to something along the following lines, assuming that a file being “contained in a crate” is an acceptable term in Rust.

```
The value of this variable is either a string containing the path to the root of the crate 
the current buffer is contained in, or nil, if the current buffer is an independent compilation
unit.  A relative path is relative to the current buffer.

If this variable is set to a string, the current buffer is only checked if it is not modified, i.e. after it was saved.
```

This is much shorter, but still to the point, imho.  I think it tells Rust developers all they need to know, without concerning them with how Flycheck works internally.