ext2: zero newly-allocated indirect blocks

Both fsck and, apparently, GRUB seem to ignore i_blocks and opt to iterate instead. If we don't zero these blocks before use, they are full of cruft which makes our files look like they are enormous and full of blocks that are not even within the extents of the filesystem. Yay!
ext2: implement File::extend in Ext2File
ext2: write back updated indirect blocks to disk