core/fs: abstract filesystem, use cache for ext2 group descriptors
Abstract out the filesystem, remove all references to "this_fs" in the
main filesystem drivers. There is still some in the core (dir.c, fs.c)
which eventually need to be replaced by a properly defined device
marker and root.
The inode structure now contains a reference to its parent filesystem.
The inode structure can now contain additional data at the end of the
structure, this is used for filesystem private data.
TODO: move the filesystem private data into proper structures.
Finally, use the block cache for ext2 block group descriptors. Trying
to allocate them all at filesystem mount time doesn't work for large
filesystems.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>