TBR: TODOs: TodoLists track numCompleted. Can mark all as done.

These changes introduce MainListener, which allows the MainActivity
to update the UI when the tasks of a TodoList have changed.

FirebaseMain also supports tracking the child tasks of the TodoLists.
This also applies when a TodoList is updated.

TodoLists can also mark all as done, though it's an open question
what should happen when all of them are already marked as done.

Bugfix: 50-50's the UI for the message and timestamp correctly.
Bugfix: notifyDataSetChanged a little more often.
Change-Id: I587cb72ff2ea946177e6643310a5402c196fa557
7 files changed