ext4_utils: don't advance list pointer twice after filling double-/triple-indirect blocks

Change-Id: I57dac465e1a2243305b21bbcdad6668b2a2d7c96
Add support for allocating file- and buffer-backed blocks via indirect block maps

ext2 and ext3 lack support for extents, so we need to support allocating
blocks using indirect block maps as well.

Change-Id: I33746214c6dbc6ce1087ae9dcc7469470fd1f0a2
Rename ext* feature flags to indicate which filesystems support them

Change-Id: Ibde921aeb68a62a6aa1fc14c9c042862e142bb1a
Add support for creating ext2 and ext3 filesystems to library

The ext* family of filesystems are distinguished from each other only by
which filesystem addon features they support -- ext3 is an ext2
filesystem with a journal, while ext4 adds more features like extents to
ext3.  It's therefore quite simple to modify the existing ext4 FS
creation code to produce other ext* family filesystems, by limiting the
features used when creating the filesystem.

Add a new make_extfs() function, which is like the existing
make_ext4fs(), except that it takes a string argument to specify the FS
type to be created: "ext2", "ext3" or "ext4".  We also need to make some
minor changes to the underlying code to account for the feature
differences between the variants.

Change-Id: Idc8bdefd93eef7c7d61dd1b70afcd3b6277f7fff
Teach make_ext4fs utility and mkuserimg.sh to create ext2/3 filesystems

Add a -T option to make_ext4fs to allow creating ext2 and ext3
filesystems (the default remains ext4), and use it in mkuserimg.sh to
support ext2 and ext3 image creation.

Change-Id: I3f62cf6290c4b40b5f03bedfd4547b173dfe2ca2