Add a cmov# primop
The cmov# primop allows users to force GHC to emit a conditional move
instead of a branch if so desired.
This MR only adds the translation to actual cmov for x86. It's still compiled to branches on other backends.
Things to do before a full merge:
- Add cmov support to the llvm backend
- Add support in the arch backend or at least open a ticket to add support.
- Changelog/Improved docs perhaps too.