Use MIDI ticks as the base time units in MIDI.Player

NOTE: Breaks playback listener APIs. Tick units are now used
instead of time units. It would be trivial to maintain the
original API of using time units also, but this would require extra
step in converting tick unit to time unit. Possibility for convertion
is offered to clients in the form of data.time() function.

Animation listener API has also been changed. Animation loop uses
now window's requestAnimationFrame and is set active only when
playing the midi song.