Some support for TextReader

Input, Parse, and TryParse all accept a TextReader as input. They
ReadToEnd to get the file contents.