[WIP] Support Cargo

Work in progress. I would like to get early feedback from all of you.

This PR add the support of Cargo to Rust Linter. We try to find file `Cargo.toml` first, to decide which we should use it to lint the source file, `cargo` (if we found a `Cargo.toml`) or `rustc` (if not found). Both rustc and cargo's path are configurable.

We also need to improve [Linter repo](https://github.com/AtomLinter/Linter) to complete this work. Currently, blocked by https://github.com/AtomLinter/Linter/pull/290 and https://github.com/AtomLinter/Linter/pull/304. These two PRs of mine are under reviewing.

Closes #4

update: 
one limitation: when lint using cargo, you must save the editing file first. it is to expensive to copy the full cargo package to tmp directory.
@gmist `executablePath` is used by upstream Linter. If i remove `executablePath` (and add rustcPath, cargoPath as you suggested) here, Linter will always add another `executablePath` in settings page, which looks weird.