Add ExecutionSystem contexts
There are many situations when you want all commands associated with a specific execution system to use the same default working directory, environment, prefix (sudo -u user, bash -c), or other properties. Ideally, this will be a provider-type interface that can compute values dynamically (e.g. refresh the environment by executing bash -l -c env). This leads to some complications with recursive execution, but they should be solvable.
This might relate to a larger issue of better exposing the various options that can be passed to systems when they are constructed.
Original requested to better support automating our deployment service that modifies the user's .bashrc file when installing Postgres.