AutoRegister can optionally register multiple implementations of an abstract

I've replaced ignoreDuplicates with an enum parameter:

- Register Single
- Register Multiple
- Fail

This allows you to call AutoRegister followed by ResolveAll to return a collection of interface implementations.

** Breaking change ** (my last check-in had a constructor overload instead but this was a bit smelly...)