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.
is the $ prefix a rubyism?