This patch introduces a type to straighten LLVM's alignment management.
See this thread for context: http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html
The next steps are:
- Use this type throughout LLVM
- Harden the type by setting ALIGN_HARDENED_ALIGNMENT to 1
Can you please doxygen-ify all the comments in this file? I.e. // -> ///