Interfaces for components that make up Hikari applications.
These are provided to uncouple specific implementation details from each
implementation, thus allowing custom solutions to be engineered such as bots
relying on a distributed event bus or cache.