By default, the INI parser in `rust-ini` tries to unescape the content
it receives, causing issues such as those uncovered in
https://github.com/NixOS/nixpkgs/issues/315602. We don't ever need the
content to be unescaped for our purposes, so we can configure the parser
to retain escape characters.
This adds an implementation of switch-to-configuration that allows for
closer interaction with the lifecycle of systemd units by using DBus
APIs directly instead of using systemctl. It is disabled by default, but
can be enabled by specifying `{ system.switch = { enable = false; enableNg = true; }; }`.