Move the last of hardcoded memory devices out of MemoryBus.

change: all RAM areas now handled by a Memory device
Debugging scaffolding; input processing.

add: s_stopOnNextInstruction to make it easier to stop the emulator from within the debugger
add: 'd' keypress to stop in VS
add: ability to computer instruction sizes by faking execution; broken; partially working; should probably just hardcode this information, there's no simple/reliable way to differentiate data reads from PC reads, and PC can be moved by jumps and calls
add: basic scaffolding for more detailed debugging
add: keyboard input processing, including input interrupt
add: 'n' keypress to run to next line
add: a single CPU breakpoint
add: memorybus device locking to avoid having to probe all the time
Missing tidbits from previous commit.
Fix STAT and vblank interrupt generation.  I had misinterpreted the docs.

fix: STAT and vblank interrupt generation
Add USB gamepad support for the exact model I have.

add: USB gamepad support for USB NES knockoff gamepad
Add window rendering; add external RAM to RomOnlyMapper carts.  Fix input.

change: refactor BG rendering to reuse the same code in window rendering
add: external RAM to RomOnlyMapper
fix: input selector bits now properly negated
change: route all MBC1 configurations to the Mbc1Mapper
Sprite support - many games are now quite playable!

add: sprite support.  Very slow, it goes through the memory bus; will implement a bypass next.