Allow named registrations to use IsFallback

I need to be able to register a named component as a fallback, allowing a plugin to later register a different implementation using the same name.

When adding a named registration, if an existing fallback is registered under the same name, replace it. If the new registration is also a fallback, it is ignored (which is consistent with the current non-named registration behavior).