Mock message calls during tests

Use shut-up to mock calls to message during test cases, instead of
inspecting the *Messages* buffer.  This is more reliable, and does not
involve global side-effects.
Fix Rubocop tests
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]
Add flycheck-buffer-saved-p

Extract the buffer-modified-p dance into a common function
Make flycheck-buffer-saved-p available at compile time

Required for compile time verification of syntax checker declarations

Regression from ec7b24d1dfb0e1fcd224b8801fc4eeb13fb7198f
Set syntax checker properties at runtime

Simplifies property assignment and verification, and avoids that the
internals of syntax checker definition leak into byte-compiled files of
depending libraries.

Also fix the naming of properties, by not using self-quoting symbols,
which seem to be reserved for keyword arguments, by convention.
Introduce a version number for syntax checker definitions

Guards against backwards-incompatible changes
Do not error on invalid checkers

Instead, just return nil and show a warning message.
Remove redundant eval-and-compile expressions