[Extensions] Verify that the entry points are valid names

Also make sure that there aren't any extension already registered
with clashing names (or entry points).

We re-use the function that used to validate extension names to validate
entry points as well, so we rename it to something more appropriate.
[Extensions] Add tests for conflicts between extensions

This adds for when an extension adds an entry point for an object
that belongs to another extension, either the extension name or
via entry points.