Fixed 16-bit ADR encoding in ARM backend

The encoding and decoding of the immediate operand needed to be
shifted by 2 bits.  If the ADR instruction used a label instead
of an immediate, the backend uses a fixup, which is encoded
separately.  Using fixups was working and is unaffected by this
patch.

Note: After rebasing this patch on the latest llvm.git, it
      appears not to be needed and has been fixed by b81b477c.