Refactor out memory to it's own struct
CPU ram mirroring
Don't read directly from the RAM buffer
Implied addressing mode is explicit instead of nil
Abstract out addressing a little better.

Get rid of the need for the CPU#Address method to know anything about how to increment PC (ew)
Move all debugging output to a debugger file

This should be much better refactored at a later date.
Rename RAM to Memory

Since the memory accesses both ROM space and RAM space, it was highly misleading to call it RAM.
Add a CPU constructor
Memory addressing and ADC/SBC timing