Add a GCC C and C++ checker.

A GCC C and C++ checker, for those who don't have Clang, or who prefer GCC diagnostics, or who use GCC extensions Clang doesn't implement, or who use GCC to target a platform which Clang doesn't and want platform-specific warnings.

**Currently far from complete**, not yet ready to merge by any means. Here's why:
 * Tests? What tests?
 * Documentation? What documentation?
 * How are Clang and GCC checkers supposed to coexist? It doesn't make sense to use both. `flycheck-disabled-checkers` is a bit clunky solution, IMO, as without user intervention both will be enabled by default due to both being in `flycheck-checkers`. Hilarity will ensue when both Clang and GCC are installed.
 * What is the right way to handle options that are required by newer versions, but make older versions choke, such as `-fno-diagnostics-show-caret` which is recognized only by GCC 4.8 and newer?
Ah, I forgot that Flycheck checks functions at compile time, so you'd have to wrap the function definition in `eval-and-compile`.