Merge imagezip ext4 code into extfs code
Merge the ext4 support for imagezip into the extfs code. There's no real reason to keep it separate, since ext4 is backward-compatible with ext3 and ext2. All of the macro definitions in extfs.c were changed from EXT2_* or EXT3_* to EXT4_*. The primary reason for this is that while ext4 is backward compatible, the data structures have been extended and some of the definitions needed to change to handle them. Some things that were constant before (block group descriptor sizes, for example) are now dynamic and must be calculated from other fields in the superblock. Since imagezip and frisbee don't support 64-bit block numbers, ext4 filesystems that are larger than 2 TB (assuming 512-byte sectors) are not supported. These can be detected by examining the feature_incompat field of the superblock. Imagezip will fail if the user tries to compress one of these filesystems.