Initial architecture for clang-tidy.

This is the first version of a possible clang-tidy architecture. The
purpose of clang-tidy is to detect errors in adhering to common coding
patterns, e.g. described in the LLVM Coding Standards.

This is still heavily in flux.

Review: http://llvm-reviews.chandlerc.com/D884

git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@187345 91177308-0d34-0410-b5e6-96231b3b80d8
Fix build error caused by r187345.

git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@187346 91177308-0d34-0410-b5e6-96231b3b80d8