changed the application container api to accept only a class that extends a new dependency marker class as a dependency definition, allowing to easily specify generics and qualifiers while also enforcing a single approach and discouraging overuse of the container api