vfs: refactor FAT and EXT2 to support multiple independent mounts
- Replace global g_fat/g_ext2 singletons with per-mount state structures
- Add struct fat_mount and struct ext2_mount for filesystem-specific state
- Update all FAT/EXT2 functions to accept mount pointer parameter
- Refactor fat_mount/ext2_mount to allocate per-mount structures dynamically
- Add fat_umount/ext2_umount functions to free allocated resources
- Integrate filesystem-specific umount calls in vfs_umount_nolock
- Remove global state dependencies to enable multiple independent mounts
- Fix duplicate enum fat_type definition in fat.c
- Test: smoke test 119/119 PASS