Fixes broken state of the library; shield global chaned to YMZ

The tree was in a broken state after the last update. This
new push corrects all the problems (tested and verified every
demo). Starting from this minor update, you should address the
shield class as YMZ, not PSG. We are reserving PSG for a future
shield based on the SN76489.

This update makes significant changes to setChannels() to help
resolve a longstanding problem with notes that fail to stop.

It also adds the code for the Endless Battlefield demo song, now
in the Hardchord Music block format (compiles down to 8.5KB).