Merge pull request #36 from aepsil0n/feature/assign_ids_to_cells

Assign IDs to cells during ID iteration
npart is signed and npartTotal is unsigned, fixed header.

Fixed the signedness of the header, don't know why npart isn't unsigned too.
Should file a bug...
Add more header fields.

This is in preperation for supporting more than 2**32 total particles per type,
which need setting the high byte of the particle numbers in the header.
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.