Clean up system command execution methods

These methods are dark magic as they interact with the runtime and get
streams to receive and send data. A bunch of things can go wrong here
so they are going to get wrapped with runtime exceptions. It is
probably best to allow them to bubble up and force-close the
application instead of trying to catch them as we won't really know
what state we are left at anyway.