Move AttributeMask out of llvm/IR/Attributes.h to a new file
llvm/IR/AttributeMask.h. After doing this we can remove the
#include <bitset> and #include <set> directives from Attributes.h.
Since there are many headers including Attributes.h, but not needing
the definition of AttributeMask, this causes unnecessary bloating of
the translation units and slows down compilation.
Additionally, the llvm/ADT/SmallString.h include directive was not
needed and has been removed.
This commit adds the include directive for llvm/IR/AttributeMask.h
to the handful of source files that need to see the definition.
This reduces the total number of preprocessing tokens across the LLVM
source files in lib from (roughly) 1,917,509,187 to 1,902,982,273 - a
reduction of ~0.76%. This should result in a small improvement in
compilation time.