Implement filesystem services, and the required kernel objects.

You could use `std::make_unique<File>()`, I think all compilers support it already.