As per Duncan's review for D12536, I extracted the sub-byte bit aligned
reading and writing code into lib/Support. Added calls from
BackpatchWord.
I made the support general instead of tailoring it to the specific
use case and data type in the BackpatchWord case. However, I am not
sure how to add unit testing for the other data types. I did test it
for signed types with negative values to ensure the shifting/masking
handled the sign bit properly, by temporarily adding some write/read
calls into llvm operating on a temporary array.