Auto-discover the required clang flags for a project

This uses the clang-flags package, which currently supports detection
of .clang_complete files defining project clang flags. It can be
extended over time to support other methods of determining the flags,
such as compilation databases. Hopefully this means that clang
warnings will be representative without further package configuration
by the user.

Also adds a config option for whether to add the user-configured default
includes to the project-configured ones.
Run clang in driver mode, not frontend mode

Clang shouldn't be run in frontend-only mode directly (http://clang.llvm.org/docs/FAQ.html#id2)
so this switches to running the default driver mode.

This has the benefit of being able to parse exception-based code and
give sensible lint output on it (e.g. boost-based code), which it
couldn't previously.
Tidy code per review comments
Merge pull request #70 from Kev/detect_clang_flags

Detect clang flags