Implement filesystem services, and the required kernel objects.

Another reason is that it would prevent all of the methods to be const, since even a Seek modify the internal state of the IOFile.  Do we really prefer to concatenate both structs that way?