Implement filesystem services, and the required kernel objects.

The idea was to use it as a maybe monad, where the File_SDMC would be invalid if its file member is nullptr.  I could change that to use an explicit member for that though.