[ms-abi] Handle __declspec(align) on bitfields "properly"

__declspec(align), when applied to bitfields affects their perferred
alignment instead of their required alignment.  We don't know why.
Also, #pragma pack(n) turns packing *off* if n is greater than the
pointer size.  This is now observable because of the impact of
declspec(align) on bitfields.