Introduce a mechanism to manage components on a shared, lazily-created
singleton entity. This simplifies access to global state by providing
dedicated methods for adding, removing, getting, and checking for
singleton components.
Refactor the Tetris example to utilize this new singleton pattern for
game state components like Board, Score, and Piece.
Introduce `clearSubtree` to recursively reset status for an entity and
all its descendants. This ensures that when a task reaches a terminal
state, its entire branch is properly reset.
Also refactor the Tetris example to use a sequential task node within
the behavior tree.