Solves the multiton problem

As I said on IRC I introduced a context for every resolve. This context stores whether the actual resolve will be a multiton instance or not and stores an optional name as well.

This PR also adds a  `ContainerAware` implementation which is a trait. This is used by `ServiceProvider` and `ResolveContext`.