Trait for application providers. An application provider is expected to be
able to register an app at an instance, and then store and re-use it. Once
an application has been registered at an instance, any further requests for
that instance should result in the same RegisteredApp.