Added compression flags and header info

So far, uncompressed stuff still works.  Now I need to work on compression.
Not yet able to handle compression.
This fixes a 'mistake' that lead to too many reads

I now store the 'len' attribute for all signals and objects whether I'm doing compression
or not.  This is essential because without a stored value for 'len', it is necessary to
add a whole bunch of extra reads to read the length prior to reading the signal data.

This commit fixes that oversight but also adds compression.  For now, I'm using BZ2
although it would be quite easy to change (or even have it as an option).

As such, this closes #7.