extend and improves the Dispatcher to allow for a way to change or influence the update processing logic. This allows for a simple way to plug in various metrics and monitoring solutions.
add new example bots that make use of these new dispatcher features (and demonstrate how to add monitoring to a bot!)
rework the Bot/BaseBotClient structs, as well as the BotClient interface, to reduce coupling and move the token to a more logical place. The client should not be handling auth, just the connection itself.
Remove the overly-complex middleware logic for the bot struct; this can be replaced with a custom bot client instead, which avoid ordering issues and is easier to understand without needing weird anonymous wrapper functions.
Impact
Are your changes backwards compatible? No - multiple lib changes
Have you included documentation, or updated existing documentation? Y
Do errors and log messages provide enough context? Y
What
Multiple changes in this PR, namely:
Impact