Add more hotspots to the ITCM. Add the I/O registers to the DTCM.
Make the "no game loaded" upper screen black because why not.
Revert "Make the "no game loaded" upper screen black because why not." It was for the wrong thing: it was for the times during a loaded game that the Game Boy screen is not drawn due to VRAM changes.

This reverts commit ec54f757113f8e88fbabd331dd526bab3633f9a6.
gbgfx.cpp: Avoid copying the drawing state onto the stack in drawLine. Has an impact on wavy screens, not static.
Designate sound registers by byte offset to FF00 instead of by 16-bit address.
gbcpu.cpp: Initialise I/O registers with writeIO in initCPU.
Optimise writes of the PC register to the stack by using a union of bytes for it instead of >>8 and &0xFF. May help in some interrupt-heavy cases.
gbcpu.cpp: Flags are often used, too. Put them in a local variable.
gbcpu.cpp: Optimise away 'LD Register, Self'; reduce the instruction count for 'XOR A, A', 'SUB A, A', 'AND A, A' and 'OR A, A'.
gbcpu.cpp: Optimise everything that has to do with the accumulator register, A.
gbcpu.cpp: Use a local variable for the accumulator register, A, just like F.
Merge pull request #3 from Nebuleon/optimisations

Optimisations, final wave