Support for multi-threaded use of P4Ruby.
Previously, whilst you
could create a multithreaded application and use P4 objects in
different threads, all P4#run() method calls were serialised
so there was no gain. This was because Ruby's threading model is
co-operative and P4Ruby wasn't co-operating. With this change,
we now call rb_thread_schedule() so multithreading works as
expected.
There may still be some problems with termination if an exception
is raised in another thread at an inopportune moment but so far
it's handled all the tests I've thrown at it.