Tool types
WIP PR to have specific types for tool outputs, which should clarify interaction to and from Agents.

Left to do:
- [x] Remove or complete the video integration
- [x] Add support for remote tools
- [x] Complete documentation
- [x] Test it out with real world use-cases
- [x] Add a test to ensure that the inputs are cast correctly (so far only the outputs are tested)
- [x] Arrange the dependencies so that they don't make all the tests fail
_The documentation is not available anymore as the PR was closed or merged._