Adds _MAX_OP value to Op enum.
This is used by the CPU to check if a given instruction is valid or not.
Applies minor fixes and code cleanup to the Cpu.
Adds a small test program to ensure the CPU is working as intended.
More extensive tests are still to be written.