rvm_wrapper: properly set home dir; added some error checking
PumaRunner: instead of fork/exec, just exec a new process cleanly

* Since we're no longer forking, we need to pass our open FDs using a
  Unix socket instead of simply via the ENV.