This implements a couple of smaller and larger features.
pages are marked with attribute ai_translationError if the translation fails
move GPTChatCompletionTemplate out of impl package since that's used in the API
add support for tools to the site panel AI: the interface AITool can be implemented by services that do offer functionality the side panel AI can call by itself (OpenAI tool calls).
include two tools that need to be OSGI configured to be available:
SearchPageAITool performs a search in the current site. That needs a lucene fulltext indext to be configured, though.
GetPageMarkdownAITool allows the AI to retrieve the text of a given page.
This implements a couple of smaller and larger features.