i#1551 port to ARM: add instr_t operand support

Adds new immediate type with encoding and decoding rules for the
signed value stored divided by 4 used by OP_b and OP_bl.

Adds encoding support for an instr_t operand in place of an
immedate, as both an absolute address value and a pc-relative
value (e.g., labels).

OP_b, OP_bl, and OP_smc were not marked as having predicates: fixes that.

Fixes improper sign-extension of signed immedates on decoding.

Still TODO: intr_t memory operands.
i#1551 port to ARM: encode mem instr operands

Adds encoding support for opnd_create_mem_instr() via pc-relative encodings
with a displacement.
i#1551 port to ARM: fix TYPE_I_b16_b0 handling

Fix mistaken handling of 2-byte TYPE_I_b16_b0 immediates: they are split
12-4 instead of 8-8.
i#1551 port to ARM: shifted source register support

Improves support for shifted source registers.  Previously we
added first-class shifted index register support, with
halfhearted support for source registers.  Here we add these features:

+ Re-order the DR_SHIFT_* enum values so they line up with the
  raw encodings (putting the two artificial values at the end),
  enabling them to be used for shifts where the amount is in the
  register.

+ Set DR_OPND_SHIFTED on registers in _shimm, _shreg, _wbimm, and
  _wbreg INSTR_CREATE_macros via tweaking the macro generation
  script and re-running it.

+ Add decoding and encoding support for shifted registers by
  recording state to allow identifying multi-operand shifts.

+ Add disassembly support for shifted registers.

+ Normalize the "i5" shift immed in the tables to "i5_7".
i#1551 port to ARM: pc operands

Changes two immediate types from TYPE_I to TYPE_J to make it clearer that
these are pc-relative displacements.
Adds proper decoding of TYPE_J immediates into pc operands.
Encodes pc operands as pc-relative immediates.
Puts in place a plain memcpy impl for copy_and_re_relativize_raw_instr()
(leaving proper re-relativization for future work).
Changes INSTR_CREATE_ jump operands to "pc" instead of "imm" via changing
and re-running the macro generation script.
i#1551 port to ARM: update OP_vst*_lane_* alignment operands

Corrects some inaccuracies in which OP_vst*_lane_* opcodes take alignments
and which do not.