Refactor and replace explicit Imm `getImm*Encodng() | isU*Imm() | isS*Imm()` functions to a generic one that takes a template. This is in prep for followup batch to implement `paddis` which takes a pcrel Imm == 32bits. Doing this refactor so we don't have to copy and paste the same set of functions again with only the bit length changes.