Todo shared

Code shared by examples/todo and examples/todo_skia, so the two apps differ only in their backend:

No Slint wire format lives here: the apps set todoModel and register onAddTodo/onToggleTodo/onRemoveDone through their generated wrappers. Depends on no app and no generated code. Tested under flutter test.