Fixes segfaults when using LZ4

Yet another Realloc badly used, Wally, this is YOUR fault!

This fixes #56.

Also changed mallocs of compressed data to use LZ4_compressBound(input_size) as it might get out of bound errors (hasn't happened yet.. surprisingly).

Also, uncompressed data was being handled and copied and passed all over the place even in LZ4 mode, moved some code to only be executed when NOT in LZ4 (this might require some refactoring is we ever want to put more compressing algorithms)