Implements a declarative approach to documenting individual attributes in Clang via a Documentation tablegen class. Also updates the internals manual with information about how to use this new, required, documentation feature.

This patch adds some very, very sparse initial documentation for some attributes. Additional effort from attribute authors is greatly appreciated.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201515 91177308-0d34-0410-b5e6-96231b3b80d8
Fixing build bot breakage due to using a local type as a template argument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201516 91177308-0d34-0410-b5e6-96231b3b80d8