Decouple event processing from libsmf

Now that we aren't relying on libsmf for tempo mapping, we don't need it
around the whole time music is being played.

* The smf_t structure is deleted after reading event data from file.

* Class for MIDI events with RAII support.

* It will be much easier to add BBT timebase slave support.

* Theoretically, smf reader could be replaced with one that supports
  SMTPE, although that would need a timecode based tempo map.

There is a bit of overhead, because timebase::TempoMap::GetTicks() is
invoked for every MIDI event. However, this is not substantial, and if
needed, could be easily changed for a more optimized solution.