Implement filesystem services, and the required kernel objects.

Once making `File` a kernel object, why not free backend in its destructor? This should be automatically called by the emulator's shutdown procedure.