Big code cleanup

Reorganized a lot of the library to revolve around pin and port
definitions so Arduino boards can share the same code. It will
make it much easier to continue to add new boards in the future.

Got rid of the old AVR-incomaptible binary strings and replaced
them with definitions.

Added preliminary support for Arduino Leonardo.

Ported SPI support to Arduino Mega.

Removed the outdated internal _psgWrite() function.

Changed internal registers and inlined functions from private
to protected class members.

Fixed a glitch in the register map that was causing updates to
the ADSR envelope to be lost.