remove misleading 'Upper' from variable names
rename start/endMidi to start/endTick
avoid using inefficient index()
minor refactorings for legibility
avoid superfluous divider when no title is generated
remove FIXME regarding English being hardcoded

This is being tracked via

  https://github.com/aspiers/ly2video/issues/17
align imports
avoid using print directly
add --debug option
remove debug
improve progress output
revamp frame generation algorithm for improved accuracy

Now deals with tempo changes in between indices, and does
not accumulate rounding errors over time.
alignIndicesWithTicks(): clarify handling of mismatches between MIDI and index
alignIndicesWithTicks(): extract temporary lineNum/colNum variables for legibility
alignIndicesWithTicks(): die when a note is found in the index with no matching MIDI event

We previously claimed to do this, but didn't actually do it.
add stderr()
gracefully handle running out of MIDI indices

This previously didn't work because the last tick is an
EndOfTrackEvent so there is no corresponding entry in notesInTicks for
it.
tighten up matching of MIDI NoteOn events with index notes

Now throws a fatal error if there were notes at any given index which
didn't match NoteOn events in the corresponding MIDI tick.
add threshold for number of consecutive MIDI ticks skipped
automatically detect language from .ly file (issue #17)

Fixes https://github.com/aspiers/ly2video/issues/17