Fix failing IO_EndOfLine_Translations tests

- InChannelImpl and OutChannelImpl must both implement IDisposable, otherwise they will leave their streams open (caused a Sharing Violation exception)
- OutChannelImpl must override Write from TextWriter, or else the output will not actually be written anywhere to the stream
- InChannelImpl must override Peek
- input_char should throw End_of_file when a read is triggered at end of stream
- in stream_to_StreamWriter, if the encoding is the default encoding, don't specify an encoding to the StreamWriter constructor.  Fixes issue with mono generating a BOM in output files, which then cause the test to fail.