Fix disassembly of CMP[PS][SD] instructions on x86-64
The relevant instruction formats wrongly defined a fixed position for
the immediate byte which broke disassembly when a memory argument was
used.
Fix this by using a prefilter to read the immediate like most other
instructions do.
Refactor for more OAOO-ness: Drop the instruction formats that were
used only for these comparison instructions; instead use others that
are nearly identical. This forces more copy-and-paste in the printer
definitions, so instead abstract the generation of printer lists for
SSE instructions into a separate function and use that here.
Add tests.
Fixes lp#814702.
Patch by Lutz Euler.