TAP splitter - upgrade to support DUNGEON format type 'A'
Port handling change -- I am pretty certain the attempts at optimisation were not right, because of the stores back to _devicePort BEFORE re-testing cases further down.
Instead, we snapshot the BEFORE value of the port, store the updated value into _devicePort, and compare the BEFORE value with the new proposal.
Tape emulation tightened:  Only include the "cassette" bit on reads of port 0x0080 and not 0x0980 0x0880 (etc).
Only include cassette bit when voltage comparator level is non-zero AND tape motor is on.
This solves problems with strange things that level 9 games do.  (Turning cassette motor on and off all the time!)
Screen rendering -- will be better if the emulator supplies 8 RGBs to the client.  Then the portable code can choose colour schemes.
IsTapeInOperation predicate -- because of Level 9 games.
Menu re-arrange
Keyboard handling complete re-vamp to accomodate doing "speed max console" mode.
This mode is ENTIRELY done on keyboard port reads now -- not on Z80/ROM "spying".
First effort at colour changing
Screen composition changed to support multiple palettes, and host can choose pixel format values.
Lynx colours can be changed on the Display menu.