Global immutable data about the current darling session. This is currently almost entirely unused, but various
configurations in the future are going to go here.
Data about an (un)installation command. This contains the name of the package to install, as well as
a map of properties specified on the command line.
A package manager which gets a darling implementation. This provides the core functionality on how to install,
uninstall, and list packages through darling. Most of these methods when implemented commonly use
std::process::Command to install things through shell commands. In the rare case that a Rust API is available
and advantageous for a particular package manager, that of course could be used as well.