- ``Context`` now accepts parametrized generic classes as resource types
- Deprecated context variables in favor of dependency injection
- Replaced ``asphalt.core.context.Dependency`` with
``asphalt.core.context.resource`` due to issues with strict type checking (the former
is now deprecated and will be removed in v5.0)
- Added support for dependency injection on synchronous functions
- Added shortcut functions for obtaining resources (``asphalt.core.get_resource()``,
``asphalt.core.require_resource()``)
- Fixed dependency injection not working with forward references
(``from __future__ import annotations``)