bugfixes to directory allocation
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.
refactor: split dir.cpp aout of vfat.cpp
clean up leftover from previous refactoring
mark all file-scope symbols as static
set read-write mode in the nbd
debug: dump contents of writes
debug: pretend to accept writes