Local socket data handling
The major change to this release could break implementations using the local data socket on (default) port 5006.
This was Identified in issue #43 by TheTechnobear where data is being read in chunks. The original implementation was expecting a full MIDI command in each read and so was coded so that the local socket data was always prefixed by a 0xaa identifier byte.
I was sharing code to parse local data socket data and also ALSA rawmidi data. In the case of rawmidi, I was faking the 0xaa prefix.
Where the data is in chunks, that 0xaa byte was injected in the middle of a MIDI command and that caused infernal loops and memory exhaustion.
To fix this, I had to remove the need for the 0xaa identifier byte.
This means if you have code which is sending the 0xaa byte, you will need to remove it. I apologise for the incovenience but there wasn't a way around it.
Addtionally in this release, big thanks go to Michael Ganss for spending some time to investigate and address some code analysis items. The first few of his suggestions have been incorporated into this release.