Disable struct's members alignment and regroup the structs' definitions

!!!WARNING!!!
Do not apply this commit if you are using a 64 bits build, you will be
unable to restore your existing images, but you will be able to restore
images created with a 32 bits build.
!!!WARNING!!!

The compiler automatically align the struct's members on the platform's
memory boundary. This is to prevent a lost of performance when the members
cross the memory boundary of the platform. If the alignment is not disabled,
the image created with a 64 bits version is not usable by a 32 bits version
and vice-versa.

In this case, a padding of 2 bytes is added before block_size to align it
on the next address divisible by 4. They are represented by XX below
and the dash show the bytes forming one member:

00000000  70 61 72 74 63 6c 6f 6e  65 2d 69 6d 61 67 65 45  |partclone-imageE|
00000010  58 54 46 53 00 00 00 00  00 00 00 00 00 00 30 30  |XTFS..........00|
00000020  30 31 00-04-00-00 00-d0--ff-1f-00-00-00-00 f4-ff- |01..............|
00000030  07-00-00-00-00-00 be-c3--01-00-00-00-00-00 00 00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

00000000  70 61 72 74 63 6c 6f 6e  65 2d 69 6d 61 67 65 45  |partclone-imageE|
00000010  58 54 46 53 00 00 00 00  00 00 00 00 00 00 30 30  |XTFS..........00|
00000020  30 31 XX XX 00-04-00-00  00-d0-ff-1f-00-00-00-00  |01..............|
00000030  f4-ff-07-00-00-00-00-00  be-c3-01-00-00-00-00-00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

Signed-off-by: Patryck Rouleau <pfrouleau@gmail.com>