[Extensions] Add a way for extensions to have multiple entry points

This adds an additional API that allows extensions to have more than the implicit entry point (the extension name), that when accessed will cause the extension to be loaded.

Also in this series are tests for loading extensions with multiple entry points, and tests for conflicting extensions entry points.