add a binary file format for molecular structures

The new file format, called "compressed structure file (csf)"
uses several tricks to minimize file size. In particular, it
uses a dictionary for standard amino acid residues which avoids
repeating the same properties over and over again. It also
only uses only 6 bytes for each atom position. The atom position
is stored relative to the residue center which is stored in the
file as well. By using relative positions, we can represent
the coordinates using a 2 byte fixed-pointed number with 8bits
for the fractional part. The residue center uses 2 bytes as well,
but since there are typically many atoms for each residue,
that's still a substantial win in size.

I tried to use existing file formats, but there were none,
that matched my use case. In particular, there do not seem
to be an formats optimized for file size that allow the
structures to be transmitted efficiently over the wire. And yes,
I am fully aware that inventing yet another file format is the
most stupid thing to do.