Dispatch a problemDone event even when skipping a problem.

Summary:
This fixes what I suspect to be a potentially bad defect that's
really subtle.

Multiple places listen to a "problemDone" event to handle cleanup of
stuff. For example:

 - TaskStore listens to "problemDone" to flush cached task data
 - UserExerciseCache listens to "problemDone" to increment totalDone
 on local copies of UserExercise dicts
 - TutorialNav apparently also has precache data that needs to be
 flushed on problemDone

Note that we get lucky sometimes; even though this is a problem, it doesn't
manifest in user visible bugs because of other things. For example,
you can't currently "skip a question, then go to a tutorial" without
doing a full page reload, so the TutorialNav issue is moot. If that
were to ever change, we would have introduced a bug.

Moreover, UserExerciseCache is just periodically purged on other events,
so sometimes not incrementing totalDone is fine; only certain codepaths
will tickle a bug

Test Plan:
 Scenario 1
 - as a user, unlock any dashboard by finishing its mission warmup; make
 sure you try to do it in a way that you'll have another mastery task
 - open the new mastery task, skip every question except the last, leave
 it unfinished, dismiss the task
 - look at any of the questions you just skipped and add a personal
 task to your dashboard with a corresponding exercise
 - do multiple problems in that personal task (before this change
 bad things would happen) and finish it
 - finish the mastery task from before

 Scenario 2
 - as a user, unlock any dashboard by finishing its mission warmup; make
 sure you try to do it in a way that you'll have another mastery task
 - open the new mastery task, skip every question except the last, leave
 it unfinished, dismiss the task
 - look at any of the questions you just skipped, and in a new tab
 navigate to a tutorial page for it
 - finish that practice task (before this change bad things would happen)

Reviewers: david, alpert

Reviewed By: alpert

Subscribers: lauren

Differential Revision: https://phabricator.khanacademy.org/D14868