More exhaustive ABC notation tests.

This commit adds more exhaustive ABC notation tests as well as tests
of the Piano object, and it fixes a bunch of bugs expoesed by the tests.
It also reorganizes and adds comments to instrument support.