x64Emitter: add BMI1/BMI2 support

TZCNT and LZCNT use a completely different encoding scheme, so they should
probably go in a separate patch.

Also add some tests.
Merge pull request #868 from FioraAeterna/bmi

x64Emitter: add BMI1/BMI2 support