Fixed some task reconciliation cases.

Case 1:

If a slave is known but the task cannot be found, we should assume that
the task has been lost.  It's possible that the following events
occurred:

 1) Framework disconnected from master
 2) Master terminated framework's tasks
 3) Framework reconnects to master, and (incorrectly) assumes tasks are
 still running

Case 2:

If a framework loses track of running tasks, the master should inform
the framework of which tasks it knows to be running, in addition to any
which have had a state change.

Review: https://reviews.apache.org/r/15745