Add environment structure.

All of the actual "runtime" parameters should be stored here. The
difference between this and the Configuration boils down to mainly
command-line arguments, and eventually project arguments.

The Environment is the actual runtime context that will be passed into
the sub-commands.