Update when we sync subtitles to external sites

Before we would sync when the public tip changed.  One issue with this
was that we would save subtitles when users clicked the save button,
which we really mean for saving a draft.

Changed it so that we sync when:
  - A new version is added and the subtitles are marked complete
  - The subtitles_complete filed changes to True
Log API Errors from youtube
Fixed JS syntax error (#1637)
Changes to syncing triggers

The old method was to sync if subtitles_complete changed or a new
version was added.  This was problematic because in
pipeline.add_subtitles() we might want to change subtitles_complete
and then add a new version as one atomic action.  This would mess with
what we synced.

Changed it so that after add_subtitles() we emit the subtitles_changed
signal.  The externalsites code connects to that and decides if we
should sync or not.

Also if subtitles_complete gets changed outside of add_subtitles(), we
will send the subtitles_changed signal then.