ADT: Change AlignedCharArrayUnion to an alias of std::aligned_union_t, NFC
All the users of `AlignedCharArrayUnion` were changed in
5b267fb7966157e0d79ea85cbc1d07f92f840d3c to stop peeking inside (to look
at `buffer`), so this finishes gutting it. It's now an alias of
`std::aligned_union_t`, with a minor difference in template parameters
(`std::aligned_union_t` takes a minimum size and 0+ types, whereas this
just takes 1+ types... maybe a bit simpler to use correctly?).
A follow up will remove `AlignedCharArrayUnion` entirely, inlining this
alias into its users.
Differential Revision: https://reviews.llvm.org/D92512