Clean up register+immediate addresses in ARM.
Clean up register+immediate addresses in ARM.

Cleans up the integrated ARM assembler, and its handling of register
memory addresses that can be modified by an immediate value. Handles
each possible encoding of such memory addresses.

Also adds assertions to check that the immediate value has the proper
range for the immediate value, based on the corresponding encoding.

BUG=None
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/1630863002 .

google/swiftshader,bkaradzic/SwiftShader,bkaradzic/SwiftShader,google/swiftshader,bkaradzic/SwiftShader,google/swiftshader,bkaradzic/SwiftShader,bkaradzic/SwiftShader