Handle Environment Better
This is a pretty big step towards having a functional init. Services have their environment's cleared before they are started, and their CWD's default to the scheme from which they were parsed. Both of these things are now configurable from the config file. This commit also has a little refactoring and other helpful fixes. Still has bugs, but it does work.