Refactor args/simulation config
Couple changes:
Some tweaks to the multi-partition system config loading
Refactor the args to use a Pydantic class. This adds full validation and parsing, etc. And can be reused in the simulation server for the API. I've kept the cli args and the parsed args object as close as possible to what args looked like before to minimize disruption for now. In later PRs I may adjust the args some more to work better with the simulation server.
Rename config.py -> system_config.py, args.py -> sim_config.py.
Add a new raps_config.py where we can put "generic" settings that aren't directly tied to a simulation. (right now that's just the SYSTEM_CONFIG_DIR). This uses Pydantic settings feature to automatically populate the model from environment variables or a yaml config file. I think we should move more of general/ui related settings from SimConfig into RapsConfig later. Those settings won't be applicable when we use SimConfig in the simulation-server, so I think it makes sense to keep the SimConfig just focused on the logical running of the simulation.