Fixes size and alignment computation of bitfields.

Tested on windows i386 with haskell-platform 2013.2.0.0 and linux x86_64.

Without this fix, the following struct would show different sizes with c2hs {#sizeof bitfields #} and gcc sizeof(bitfields).

    typedef struct {
        unsigned int b0  :  31;
        unsigned int b30  :  1;
    } bitfields;

May affect the issues reported in https://github.com/haskell/c2hs/issues/32 and https://github.com/haskell/c2hs/issues/10.

This patch is based on 0.16.5 rather than HEAD to avoid a supposed regression reported in https://github.com/haskell/c2hs/issues/60. Would merge well with current master though.