AutoRegister can optionally register multiple implementations of an abstract
Replaced booleans with single enum parameter for AutoRegister to decide how to handle duplicates
Bug in AutoregisterMultiple fixed & tests

And rebased it.
Merge pull request #38 from albertjan/AutoRegisterMultiple

Auto register multiple