First pass at passing STDIN through to git-svn.

This is JRuby-only currently. We'll need to rely on the open4 lib to get non-JRuby support.
Added a dependency on open4 to get STDIN pass-through working on MRI.
Don't join on the stdin pass-through thread.

Since the thread would otherwise block forever waiting for user input, we'll wrap it in a timeout and loop checking the status of the sub-process STDIN pipe. This should prevent runaway thread growth.
Robust STDIN pass-through to sub-process.

My previous attempt at preventing explosive thread growth didn't work because I couldn't reliably interrupt a .gets call.  The timeout in the thread did cause the thread to begin aborting, but  would still be blocked.  Starting multiple such threads meant any user input could end up being consumed by any one of those threads.  Moving towards a single thread for getting user input and communicating to a new pass-through thread via a Queue avoids those problems and allows us to stop the pass-through threads when they're no longer needed.