[CMake] Restructure how Clang, Polly and other external projects get included.

While making lld build under the tools directory I decided to refactor how this
works.

There is now a macro, add_llvm_external_project, which takes the name of the
expected subdirectory. This sets up two CMake options.

 * LLVM_EXTERNAL_${NAME}_SOURCE_DIR
     This is the path to the source. It defaults to
     ${CMAKE_CURRENT_SOURCE_DIR}/${name}.
 * LLVM_EXTERNAL_${NAME}_BUILD
     Enable and disable building the tool as part of LLVM.

I chose LLVM_EXTERNAL_${NAME} as a prefix so they all show up together in the
GUI.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155654 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/docs/CMake.html b/docs/CMake.html
index ff8bf30..67dfef3 100644
--- a/docs/CMake.html
+++ b/docs/CMake.html
@@ -353,10 +353,10 @@
     installed on a custom location, you can set the variables
     FFI_INCLUDE_DIR and FFI_LIBRARY_DIR. Defaults to OFF.</dd>
 
-  <dt><b>LLVM_CLANG_SOURCE_DIR</b>:PATH</dt>
-  <dd>Path to Clang's source directory. Defaults to tools/clang.
-    Clang will not be built when it is empty or it does not point valid
-    path.</dd>
+  <dt><b>LLVM_EXTERNAL_{CLANG,LLD,POLLY}_SOURCE_DIR</b>:PATH</dt>
+  <dd>Path to {Clang,lld,Polly}'s source directory. Defaults to
+    tools/{clang,lld,polly}. {Clang,lld,Polly} will not be built when it is
+    empty or it does not point valid path.</dd>
 
   <dt><b>LLVM_USE_OPROFILE</b>:BOOL</dt>
   <dd> Enable building OProfile JIT support. Defaults to OFF</dd>