The reason for the suggestion is that this technique scales better for multiple solvers and extending solvers in the future.  A single set_solver method will allow modifying/configing a simulation with any solver that requires arbitrary configuration.  The original approach in this PR requires methods specific to configuring particular kinds of solvers that may or may not even read that configuration.  For example, a simulation might be set up with commodity ordering, but the LP solver may just ignore commodity orders because that config is specific to the greedy solver.