reduces the amount of locking needed to get to static info like dependencies between units and config.
separates parsed config from the actual internal model. Transformation between parsed config <-> internal model reorders some of the information for clearer separation of concerns (e.g. in the parsed config wanted and wanted_by are in completely different sections)
pushes the state transitions of Units into the impl Unit {} block. This ensures that only threads with exclusive access to units make changes to the status.
The first bigger redesign has been finished. It