More cleanup, add minimal debugger state (stepping/running).

change: reimplement old opcodes using new template-based stuff (INC, DEC)
add: single-stepping and running debugger modes
change: moving more functions/cleanup
More micro-opcode refactors.

change: refactored LD, illegal opcodes
change: debugger now breaks before actual execution of instruction

Still some refactoring to do but I will wait a bit to do that, until the test ROM runs, to use it as a benchmark and make sure I'm not breaking anything.
More CPU/memory implementation, refactoring.

add: VRAM
add: read-only memory-mapped registers (implementation to be revised)
change: Memory::SafeRead8() no longer relies on exceptions being thrown, makes debugging much easier
change: refactor micro-opcode templates to make them simpler/more reusable
add: AND, XOR, more CALLs, SUB, LDH, LD; extended opcodes RR, SRL
fix: JR bug where negative displacements were treated as unsigned
fix: bug where Zero flag was being incorrectly set from value in A instead of actual operation result after ADD and SUB
add: memory-mapped registers LCDC, SCY, SCX, LY, BGP, OBP0, OBP1
add: DebugCheckForKeypress()
More implementation work.  Now passes Blargg's test 06!

add: rudimentary MBC1 support that does not support bank switching yet, it just maps bank 01
add: support for printing out of the serial port
add: STOP, ADD, ADC, RL, RET, RR, LD, JP, XOR
add: SB, SC, NR12, NR13, NR1, KEY1 memory-mapped registers