Add support for header with more than 2**32 particles.

If there are more than 2**32 particles of one species total, the higher byte of
the number needs to be written to a seperate field. You still need to split the
file though, as n_part is only an int, so one file still only supports 2**32
particles.
Make the code work with python 3.

In Python 3 you can't concat binary strings directly. We use by bytearrays
instead.