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 bytearrays
instead.
Construct testing data explicitly.
Test improved for more than 2**32 n_all
Merge pull request #38 from Moredread/feature/partnum_high_byte

Feature/partnum high byte
Fix wrong boundary ID assignment

The convention in Arepo appears to be this way around, which can cause a lot of
confusion. This will be overridden by the refactoring of the ID assignment
logic but the hotfix is still necessary.
Update MD5 hash in test
Merge pull request #51 from aepsil0n/fix/boundary_ids

Fix wrong boundary ID assignment
Implement a simple ID range as storage

This is a first step in refactoring the ID assignment logic currently used.
Implement compound ID assignment

Can assign IDs from multiple ID providers using a dispatcher class.
Discard Mesh class in favor of simple function

The Mesh class' simple functionality did not justify its bloat. It also hid
away some details that can used in a more modular way. Therefore it is hereby
replaced by a simple factory function that produces a list of cells instead.
Use new ID assignment for IC writing
Adapt test MD5 hashes to rebase