Added capability for "Direct Piping" - that is, transferring data between
2 processes directly using OS pipes and connecting them with dup2, instead
of buffering the output of process 1 into python memory before sending to
process 2.

This is in response to issue #119 https://github.com/amoffat/sh/issues/119

The effect can be enabled by setting call arg _piping="direct" on the inner process.
I had issues with getting 'Input/Output error reading stdin' from dd, until
I set _tty_out=False. In the code I have therefore set _tty_out to False when
_piping == "direct". This has caused 3 of the unit tests to fail.

test2.py on my PC shows 13s vs 0.5s performance difference
Added capability for "Direct Piping" - that is, transferring data between
2 processes directly using OS pipes and connecting them with dup2, instead
of buffering the output of process 1 into python memory before sending to
process 2.

This is in response to issue #119 https://github.com/amoffat/sh/issues/119

The effect can be enabled by setting call arg _piping="direct" on the inner process.
I had issues with getting 'Input/Output error reading stdin' from dd, until
I set _tty_out=False. In the code I have therefore set _tty_out to False when
_piping == "direct". This has caused 3 of the unit tests to fail.

test2.py on my PC shows 13s vs 0.5s performance difference
Added a comment explaining tty_out change
(I had issues with getting 'Input/Output error reading stdin' from dd, until
I set _tty_out=False)
Undid my specification for a different type of piping ("direct")
after I realised that the only unit tests that were failing were
due to timing assertions

Direct piping should now occur whenever _piping==True
Removed some remnant code
comments and readability on some old code
updating changelog
Revert "Undid my specification for a different type of piping ("direct")"

This reverts commit 60bc135c9feaa322b49c6fb9c33ac06592040b04.

Conflicts:
	sh.py
Stop hash() from working in Python 2, to match Python 3 behaviour

This avoids DeprecationWarning warnings when running with “python2 -3”.
Merge remote-tracking branch 'amoffat/release-1.10'