Fix Issue #21: automatic calculation of alignment padding after lists

Changed xgbgen so that it puts alignment padding between lists so that the first element of every list is aligned to 4 bytes (if the size of the list element is more than 4 bytes) or to the size of the list's element struct.
This doesn't make any sense to me but it seems to be what xcb c_client.py does. Tests and examples work on my machine.
Requests are padded to 4 bytes, always.
I also added a test case for Issue #12.