Debugger: fix value reading problem.

When reading a variable value from a register, if the value's size is
smaller than the size of the register and the architecture is little
endian, we need to adjust the bit offset we read from in addition to
byte swapping, otherwise we wind up reading the wrong bytes.

This was mainly noticeable in the case of functions that returned
boolean values, which would consequently sometimes show up incorrectly.