totally revamp synchronization algorithm for significant improvement

We now take a radically different approach to synchronization:
rather than brittle heuristics in ly2video, we tweak the .ly source
so that LilyPond gives us all the data we need for synchronization.
For each grob, it outputs paper positions, timing, and origin within
the source file.  Then for each moment in which one or more grobs
occur, the leftmost grob is used to determine the position at which
the video frame will be focused during that moment.

This is far more robust, so we no longer require special handling
for ties, grace notes, chord names, chords which have note heads
on either side of the stem, etc.

A big thank-you to Jan for helping with this!

Fixes the following issues:

  #5  - music written with \partial command can cause a lot of bugs
  #14 - articulate.ly should not have to be disabled
  #16 - ChordNames break synchronization
  #23 - \turn breaks synchronization

https://github.com/aspiers/ly2video/issues/5
https://github.com/aspiers/ly2video/issues/14
https://github.com/aspiers/ly2video/issues/16
https://github.com/aspiers/ly2video/issues/23
add some regression test case input files

This is for when we get round to writing a test framework.
Currently they can only be used by manually running ly2video
on them.