Refactor internal interfaces for clarity
Move from Config-objects-with-private-members to a full separation of configuration and runtime types, which simplifies a lot of interface boundaries between different parts of the code. More specifically, the Server is a lot leaner and its functionality is clearer. Backends also have a slightly improved interface.
internal-refactor in 23 seconds1 job for