Bugfix: wrong padding in drawing bitmaps

Lines in bitmaps are always aligned to 32 bits, which means the
beginning offset of lines in bits must be evenly divisible by 32. That's
why the pixel data in some bitmap files are longer than
width*height*color_depth.

Bugfix: aligned data fetching in 24-bit bitmap

We can't just take a 32-bit int from char pointer, there are alignment
problems.