Also made a number of improvmements to tt, making it compatible with more shells.
Also broke out IoFd into it's own file, and did the same with IoFile.
Both do buffered reads and writes, but IoCopy() uses IoRead() and IoWrite() directly, whereas StreamCopy() relies on StreamGetc() and StreamPutc(), which manipulate the stream buffers.
The Stream API now provides the buffered I/O functionality analogous to the C standard library.