Implemented class CodeGeneratorBackend

This class realising high level interface on
code generation classes. InstructionEmmiter now
can emit instructions which declarations are
"inst imm64/imm32". Class CodeGeneratorBackend
can emit determined asm instructions. Now instructions
list is:
1) mov  reg64 reg64
2) mov  reg64 imm64/imm32
3) push reg64
4) push imm64/imm32
5) pop  reg64
6) ret
Implemented comparison asm instructions

CodeGeneratorBackend now support this new
instructions:
1) cmp   reg64, reg64
2) sete  reg64
3) setne reg64
4) setg  reg64
5) setge reg64
6) setl  reg64
7) setle reg64
Instructions setcc don't change all register.
They change just one byte. It means that "setne rax"
equals "setne al".
Implemented arithmetic asm instructions

Now CodeGeneratorBackend can emit arithmetic
signed instructions. This is the list of them:
1) add  reg64, reg64
2) sub  reg64, reg64
3) imul reg64
4) idiv reg64
Also bug in modR/M byte generating for instructions
which working with two registrs was fixed
(Earlier it had been generating incorrectly).