Patch to add proper bounds checking/diagnostics to logical shifts, this also means we can get rid of yet more AsmParser hacks that do this manually.
As with my previous patches, there is no testcase for this as it is part of the merge of MC/AArch64/basic-a64-diagnostics.s.
I think it'd be better to pass the entire logical_shiftXY operand through here.
I view casting strings to particular Record types as a last ditch solution when you'd otherwise have to pass dozens of them up the hierarchy.