Optimize rendering; ignore reads/writes to unmapped I/O port space

change: LCD rendering now bypasses memory bus and reads directly from local VRAM/OAM.
change: reads/writes to unmapped I/O ranges are now ignored.

By comparing with BGB, it seems multiple sprite hits per pixel are allowed after all.  Will handle that soon.
Sprites can now overlap properly.

fix: transparent sprites now no longer hide lower-priority sprites.