Add templates for classes and functions.

The new class TemplateDecl stores the template list for any statement.
Improve control flow statements and add ForStmt to the parser and tests.

Like IfStmt and WhileStmt, the ForStmt accepts declaration in his condition.

Make IfStmt & co. more 'fuzzy' by allowing an UnparsableBlock as condition.
clang-highlight command line cleanup

Get rid of libTooling because it doesn't really work well together with the
fuzzy parser.

Add a new command line option identifiers-only to not highlight non-identifiers
as types.
clang-highlight: Add semantic html as another formatting option
Add preprocessor directives (include and if)

The manual preprocessor parsing inside TokenClassifier.cpp is removed after
this change.

Highlight function names in bold in console mode.
make AnnotatedToken members private and provide a more convenient interface.

Make TokenFilter more convenient as well.
Add initial documentation.

The doc is not compiled with sphinx yet and may contain syntax errors.  Also
some links to header files are missing.