stdchannel_redirected: Rename arg dest_filename => replacement_filename

dest_filename implies that the file can only be a destination, but this
is not true, it can be a source (e.g.: for stdin) too. Ditto for
dest_file => replacement_file
Simplify stdchannel_redirected by using `with open`
Extract fd_replaced function from stdchannel_redirected function.

Both are pretty simple and elegant.
Make it work on Python 2.5
Add .travis.yml for Travis CI