Improvements
- Engines: Added `Engine.function_token_reserve()` to dynamically reserve a number of tokens for a function list
- OpenAI: The OpenAIEngine now reads the `OPENAI_API_KEY` environment variable by default if no api key or client is specified
- Documentation improvements (polymorphism, mixins, extension packages)