osx: run build script from a launchagent

In Xcode 6, a change was introduced that made Xcode unable to start and
connect to the simulator over an SSH connection. We've tried many
workarounds for this, and this one seems to work.

It adds a ruby script that listens to a TCP port, and when something
connects to it it starts the build script and streams the output back.

This script is then added as a LaunchAgent. Unfortunately, launching a
launch agent from an SSH connection still makes the resulting process
have the same issues as one launched directly from an SSH session. To
work around this, we reboot the VM, which means that launchd itself
starts the LaunchAgent as it's supposed to. This currently adds
somewhere around 45-55 seconds to the effective "boot time", making
builds slower but working.

The plan forward is to move these scripts to the VM itself, so we don't
have to reboot the VM every time and speeding up builds again.
sauce_labs: fix wrong method name
sauce_labs: fix typo in script path
sauce_labs: return the right status code

Just to_s returns a string on the form "pid <pid> status <status>",
while we need a number. If the process was killed, this can be nil, in
which case I'm using 127 as a code.
runner: add a wrapper for OS X connections

It turns out retries and some waits are good to have for reliability, so
putting this in a wrapper script seems sensible.
sauce_labs: use a PTY for the wrapper script on OS X

This makes the commands run like they are run in a terminal (colours,
progress bars, etc.), more like they used to before the workaround with
the wrapper script.