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.