This is a spiritual revert of r240853.
The DWARF 2 specification of DW_AT_bit_offset is written from the perspective of a big-endian machine and is ambiguous for little-endian machines.
The way that LLVM pre-r240853 interprets it can result in negative field offsets, which I attempted to fix in r240853. However, it turns out that debuggers actually expect this format using negative offsets and other popular compilers also generate them this way. I therefor suggest to just revert back to the old behavior.
Note that D19630 implements the unambiguous and more space-efficient DWARF4 version using the new DW_AT_data_bit_offset attribute.