2361: don't save subtitles if no changes have been made.

Added some code in the SaveSessionController to check if there have
been any changes made, if not we can skip the API call to save thing.

Changed the return value of SaveSessionController.saveSession().
Instead of returning a promise from the save API call, it returns a
promise that gets resolved with the version number of the subs.  If
we're skipping the call we obviously can't return the response data
and the only way we were using that data was for the new version
number.

Made SubtitleListController track the version number of the subtitles
that it's displaying.
2361: Disable the save button if no changes have been made

Changed the way we track changes, now instead of a method, we store a
variable in the SubtitleList scope.

Fixed a couple of bugs with the editor code:
  - stop editing when a text area loses focus (otherwise, you can
    finish editing when there's only 1 subtitle)
  - allow users to re-select the last selected subtitle item.
2361: Better UI messages

Don't say we are going to save/discard subtitles if no changes have
actually been made.