[Application] Get rid of the general ApplicationServiceProvider interface

See commits messages. This change also includes a way to ensure ApplicationSystem can be customized per-platform.