Added WebVTT support and audio visualization

Lots of refactoring for efficiency and to start integrating the subtitle
timeline with the Ayamel framework. Audio still needs a lot of work for
processign efficiency and data acquisition, but the display is pretty
solid. Caption display is still separate from the timeline itself;
display and editing of captions is shown on the demo page.
Added Web Worker for speedier rendering

WaveForms now use web workers to speed up some rendering, with a
callback function for render completion. This starts to introduce a bit
of asynchrony into the timeline, which may call for greater refactorings
later. The demo also now has some very simple downsampling, which helps
reduce memory and speed up rendering.
Fixed up functionality for the different tools.

Added a button bar to the demo to switch tools, and then fixed all the
bugs that had crept in from not testing anything but the select tool. A
little bit of progress on improving asynchrony with the audio rendering,
and some progress towards tracking active tracks separately from the
current selection.
Added overlay canvas

Waveforms are now drawn in a separate overlain transparent canvas so
that rendering and updating them is decoupled from rendering and
updating segment tracks. This helps with improving asynchrony and
reduces the total number of re-renderings required.
Switched timescale from ms to seconds.

The timeline now no longer requires scaling to interact with HTML5 media
elements that use seconds for time codes. This required some fiddling
with the key display, which is actually better now as a result, and the
slider, which was overdue for efficiency improvemets anyway. I tried
preloading images on Timeline.prototype to get rid of the problem with
the slider not rendering immediately, but that doesn't seem to have done
anything.
The ui was also updated to add cursor hotspots, include the first level
of track padding as part of the key, and auto-select newly created
segments.
The demo is updated with a button to add a new empty track.
Allow resizing the view at both ends.

Updated the slider & the audio renderer to allow resizing the view from
either end.
Efficiency & scrolling UI improvements.

Added a tool for smooth fine-grained scrolling and updated the slider
scaling so that max zoom will always give 1 millisecond per pixel
regardless of timline length.
Lots of cleanup.

Standardized capitalization conventions, cleaned up cursor
implementation & improved how they behave in the UI, made undo work,
implemented locking  and deactivating tracks, fixed audio display issues
(audio scrolling could still be improved).
Renaming.
Toolbar was useless. Added "use strict" pragmas.
Added persistence functions.

The timeline can now load and save WebVTT files and save SRT files. I
broke apart WebVTT.js to put Cues on their own so they could be re-used
by other formats (basically, just SRT). I removed any persistence
functionality from TimelineTracker, since it's redundant now.
Fixed up namespacing & caption title display.
Moved stuff to other repositories.

WebVTT parsing & Ayamel stuff moved to their own repositories. Fixed
text rendering so that every track can have its own direction.
Hid segment constructor.

Hid the Segment constructor inside the SegmentTrack module so no-one
else can construct segments. This simplifies a lot of data sanitization.
Also some renaming of SegmentTracks to more generic TextTracks and a
better UID system for Segments (using +(new Date) failed loading tracks
from a file because it went too fast).
Firefox & Safari compatibility.

Also finally fully eliminated JQuery dependency, replaced demo.html with
index.html, and replaced github URLs to scripts with relative URLs.
Improved customizability.

Added replaceable skin objects, which refactoring revealed a lot of
cruft that was removed in the styling information.  Ensured images are
loaded before rendering (this is inefficient at the moment). Fixed track
background image- may replace with color gradient like the whole
timeline background.
Made view time-centric rather than pixel-centric.

It's simpler that way. Also did some reorganizing in Timeline; reduced
the number of cursor updates (which works around webkit bug that fires
mousemove on cursor update) and improved the scroll tool code.
Made saving work.

Bit of a problem with Unicode strings. It might be the fault of the
sendAsBinary polyfill.
Eliminate binary conversion.

The loss of unicode characters was, in fact, the fault of the
sendAsBinary polyfill. We're only dealing with plaintext formats anyway,
so just ditch it and use xhr.send().
Testing loading from URL.

Also fiddled with the scrolling cursors; there was something weird going
on with the image 'sticking' after smooth-resizing. I *think* I fixed
it.