Rework ui resources

This moves the UI resource away from the root ("/") of the service onto /ui. It also adds a special resource that can be enabled or disabled to restore the old behavior to open the UI when accessing the root of the server.

If the resource is enabled, the root can be replaced with another resource (e.g. custom branding or some other endpoint) while the Singularity UI is still available as /ui.