Big refactoring to untie the CommandHandlers from the TextUi, so we can slim down the TextUi.

Had to invert some control by introducing an Exercise Session that gets injected into the CommandHandlers