Precodereview

A few things:

*I think a very successful refactoring of methods into `ToDo` class, usage feels much more natural now. ToDo is now dataset agnostic, and all the internals of default assignment, and key creation are handled within the ToDo class.
*`ToDo.from_entity()` relies on the explicit reassignment of `__class__` variable of entities which are ToDos. No safety checks are done here, however they would be possible. Jury (i.e. stackoverflow) is out as to whether this is good python style, but the majority seem to think it is ok, several big libraries use it.
*The mysterious left behind entity still lingers in the datastore after running dredd. The persistence of this bug after major refactoring makes a dredd problem seem more likely. 
add an ancestor to the query