Add -p switch to runner.rb for running UI tests in parallel

Usage: `./runner.rb -p 3` will run UI tests 3 at a time.

I renamed all global variables to $name to differentiate them and put the thread-unsafe code inside a synchronized mutex.  Keep an eye out for any thread-unsafe code I may have missed.

`Open3.popen2` is needed because `$?` won't be thread-safe when multiple cucumber processes are running in parallel.

![screen shot 2014-11-14 at 5 14 21 pm](https://cloud.githubusercontent.com/assets/413693/5055939/c15c0514-6c21-11e4-90b7-ab0c0c285cb9.png)
Yeah I think `.read` blocks until the process closes the pipe.  My simple test program:

```ruby
require 'open3'
Open3.popen2('sleep 1 && echo "hi"') do |stdin, stdout, wait_thr|
  stdin.close
  puts 'waiting...'
  puts stdout.read
  puts wait_thr.value.exitstatus
end
```

It outputs 'waiting...' right away, then 'hi' after 1 second.