Create a todo list that implements the following behavior:
- Add todo
- Remove todo
- Toggle todo's completed state
- Toggle all todos completed state
- Get the total number of todos
- Get the number of completed todos
The app has no UI. Instead, we will use the console to show the state of the app. The console UI's behavior should be:
- Print all the todos in the list, as well as the total number of todos and number of completed todos.
- The console should reflect changes in the app's state.
- Only relevant changes should be printed.