Added TimeSync: a framework for syncing subtitles.

Currently supported operations: sync(syncPointList), which accepts a list of user defined
synchronization points. TimeSync then tries to change subtitle times to match sync points in the
best possible manner. Things might of course break up when subtitles are corrupted, especially when
they are not conitnuous in time.

This is a base for further implementation of issues #43 and #55.