Duplicate-aware testing mechanism

The old extra_entry_points couldn't register two classes under the same
identifier. We're going to need that for testing.
Don't tolerate ambiguous plugins

If two classes are registered with the same plugin name, don't just pick
one at random, raise an exception.  This silent error wasted half my day
yesterday... :(
Merge pull request #106 from edx/ned/dont-tolerate-ambiguous-plugins

Don't tolerate ambiguous plugins