Changed .good() to .eof() style loop; fixed trailing newline on cat function
changed up exception type for less-volatile throw; added write(), open(), and close() for file::stream constructor dodging