Improvements and fixes to MidiReader

1) Meta events can have delta times too and some midi files relied on
them. We threw away all meta events and thus timings became corrupted.
The MidiReader now correctly respects meta events delta times.

2) The reader now correctly transforms NOTE ON events with a velocity of
0 into NOTE OFF events.

3) I've found a way to deal with the 'invalid bytes' found in some midi
files. See the comment in MidiReader.cpp for more information.