Allow extension `setup` functions to be asynchronous. The loader now checks if `module.setup` returns an awaitable and runs it using asyncio, handling cases where an event loop is already running or not.
This enables extensions to perform asynchronous initialization tasks.
* Add reload_extension helper
* Removes unused message reaction event handling
Eliminates dead code for message reaction events that were not being processed or utilized by the application.
Cleans up the event dispatcher by removing the unused parser method and event mappings for reaction add/remove events.