set last blocks correctly while expanding memory

colla_expand_memory now sets colla_last_block and colla_last_free block
correctly, so that it doesn't blow up if realloc moves colla_memory somewhere
else in the memory.
accessing the memory with relative positions

colla hopefully ceased to segfault while working with very large memory sizes.
The fundamental problem was that it was impossible to access old memory blocks
if realloc moved colla_memory (and making it possible didn't seem feasible).

Everthing seems to work well (but somehow slower) after modifying colla_alloc
and colla_free so that they work with relative block positions rather than
absolute pointers.