Ensure that stdin is always closed
Add spec for Shell closing stdin to child process
Update testing gems.
Add a default version to 'git.bin'.
Use readers instead of ivars where appropriate in Babushka::Shell.

Conflicts:
	lib/babushka/shell.rb
Merge remote-tracking branch 'richo/features/subshell_handling'

Conflicts:
	lib/babushka/shell.rb
Define the standard stream pipes as plain vars instead of a hash in #popen3.
Formatting in #popen3.
Use arrays instead of hashes for the pipe end lists.
Remove ugly calls to sleep(2)
Use select(2) to handle writing to child process stdin

With the old syntax, a call like

    shell("cat", :input => (2**256) * "foo")

Would block indefinitely owing to a deadlock. The same deadlock is still
theoretically possible with this approach, but much, much harder to end
up in the middle of
Remove IO#ready_for_read?

Once select(2) returns an fd it's a safe assumption that we can read
from it.
Move spinner logic away from the subprocess communication (it will spin on stderr too now).
Rename the pipe connections in #invoke to avoid shadowing the stdout/err buffers.
Tighten up FD handling and looping in #invoke.
Variable naming for the FD lists in #invoke.
Refactor the subprocess input logic to accept a string or open file, and read instead of mutating.
Simplify the subprocess reading logic.
Whitespace.
Close STDIN immediately when there's no input, because in that case we'll never read and EOF will never be hit.