Code in ProducerInjector duplicated in AsyncProducerInjector 

Three private methods (makeSpecialized, updateQualifiersAndName and methodSignatureMatches) was completely equal in ProducerInjector and AsyncProducerInjector classes.

I tried to put these method to their common ancestor, but code becomes uglier than it was, so I moved them to separate class.

As I'm new to this project, I don't know where is it a good idea, but I hope this change will make it easier to maintain errai.

P.S. May be names of new class & interface are not good, please change them if you construct better ones.