* Slim down langroid -- Make several dependencies optional, to be installed via "extras". See `pyproject.toml`. This should help reduce build size for production use, as well as improve script startup times. In DocChatAgent, if LanceDB is available, we use it, else we use QdrantDB (which is installed with core langroid).
* ToolMessage.examples(): each example can now either be a tool instance, or a tuple (description, tool_instance),
where the description is a natural language "thought" that leads to the tool usage. In some scenarios this
can enhance reliability of tool-generation.