Split TodoList, create a base class.

The subclass implements the dependency tracking of todos, which can be
quite intensive for huge todo.txt files, and is not always needed. For
instance, dependency tracking is not needed for archiving.
Use TodoListBase for archive files.

No dependency tracking is needed and gives a huge performance
improvement for huge done.txt files.