Clean up MIDI track reading
Move MIDI event reading into an iterator
Handle MIDI running status
MIDI tempo detection

Treats the first tempo event as the tempo for the entire song for now
(ie. does not support in-song tempo changes)