Created a simpler, more event-driven player with audio support.
Fixed pseudo-fullscreen
Added LTI access to a specific piece of content and video portions.
Added YouTube player.
Added flash video player. Issue #49164115
Time code component width increased. Issue #49165777
Made table content box smaller. Issue #49338095
Added Brightcove player. Issue #48096793
Improving Controls

Need to add speed control, AB/Repeat
Fixed track clicking.
Transcript syncing. Issue #49164873
Word reference in new tab. Issue #49337213
Help page list. Issue #49305907
LTI Timecode error. Issue #49455529
General Player Improvements & Rate Control

Rate control is just based on the volume control for now. The css
doesn't quite work right for right-alignment, but it's functional. I
want to pull out the common slider functionality into its own
sub-widget, like the old controls did.
Added util function for text direction.
Fixed caption track toggling. Fixed durationchange event in YouTube player. Other typos fixed.
Reorganized control registration

Separated controls from other classes so we no longer need a hard-coded
set of control names.
Divided plugin registration by type.

TODO: mediaPlayer needs to be able to return different kinds of player
objects (static vs. dynamic in the old code) based on the media type of
the resource (audio/video/image_sequence vs. text/image).
Fixed index error in processTime.

Also made it a lot more concise, and fixed formatting (converted tabs to
spaces).
Split MediaPlayer into Player and Viewer objects.
Fixing requestFrame issues.
Fixed typo in timecode processing.
Added additional iPad support.