Features
- `with_single_node` and `with_launch_file` now support an optional `time_limit` to prevent deadlocks from stopping the test progress
- The `ROS2TestEnvironment` now supports easy interaction with nodes via [services](https://docs.ros.org/en/rolling/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Services/Understanding-ROS2-Services.html)
- Added `await_future()` and `call_service()`
- See [the documentation](https://ros2-easy-test.readthedocs.io/en/latest/env.html) for details
- Reduced the default warmup time for `with_launch_file` from `5` to `2` seconds
Other
- Both test annotations create one fewer thread and directly work on the underlying `Executor`
- Improved typing, and [mypy](https://mypy-lang.org/) is now used to enforce it
- Smaller bugfixes and improvements to code and documentation