Return invalid argument if input source invalid
Fix bug where MIDI sequence was not correctly returned

This bug was originally reported by @thrusound, actually I'm not sure
how MIDI parsing even worked correctly before this fix. =/

Also split MIDI setup into a separate function; this has no reason to be
in the same function which configures the output source.

Added a bit of extra logging here so that if the program returns early,
there is at least some message as to why.
Support for MIDI meta events

Also now correctly parses the end of track event.
Allocate memory when appending strings (if necessary)
Fix heap corruption when sending multiple VST events
Larger buffer sizes for analysis tests
Better syntax for defining application tests

Also add a test for rendering MIDI with a VSTi synth
Fix memory leak with va_list
Fix compiler warning
Fix compilation error on Windows
Turn off pedantic compilation on Linux

Too many stupid warnings about stuff which doesn't really matter.
Fix warning about implicit declaration of readlink
Pull submodule forward
32-bit platform names
Add function to detect if host is 64-bit
Platform name should return bit-ness
Send note off events first to VST instruments

Apparently some VSTi's expect to receive note off events *before* note on
events, namely monophonic instruments and poorly-coded ones. Anyways, to deal
with both situations we filter the list of incoming MIDI events and place the
note off events in the front of the list.
Allow fail tolerance to be passed to analysis algorithms
Reset fail counter if non-silent sample detected
Remove some redundant code