Qualifier support.

Dependencies are defined by type, however there might be cases were two
or more implementations of the same type should be used across the
system. Qualifiers allow defining requirements in more details.

Closes #5.