fix(Key): relax type constraints

from List to Iterable
fix(injector): types getter return a set<Key>
fix(injector): more accurate error message