debug: don't memset structures before filling

The memset makes it harder to valgrind to detect problems.
refactor: split fat.cpp out of vfat.cpp

vfat.cpp was too long and tangled to support the major changes needed
for read-write support. This commit starts the process of splitting it
into less entangled units that each care about their own data.