Refactored Clang-tidy for better reusability.

Summary:
Made ClangTidyAction more slim and moved its declaration to header to
allow easy creation of Clang-tidy ASTConsumer. Don't derive from
clang::ento::AnalysisAction, use clang::ento::CreateAnalysisConsumer instead
(I'll propose making this function a part of a public API in a separate patch).

Use MultiplexConsumer instead of a custom class.

Don't re-filter checkers list for each TU.

Reviewers: klimek

Reviewed By: klimek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2481

git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@198402 91177308-0d34-0410-b5e6-96231b3b80d8
clang-tidy: Fix build since r198402 in the case that the source tree of clang-tools-extra is not located on clang/tools/extra.

FIXME: Get rid of private headers in other modules.

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