Snapshot: doing some testing to hunt down data corruption issue.

Not so fun.
Totally refactored the size handling.

Now exposes separate functions to encode and decode size values, and no longer supports it in compress()/decompress().

This makes way more sense, and also better matches the API of the C version.
Fixed a bug that truncated compressed files.
Moved the size-decoder up. Fixed broken print().
Enable all three passes.
More output buffer space.

This is needed for very small (or hard to compress) files, that tend to grow.
More silence.
Fixed the find expression.

Based on a Stack Overflow answer (http://stackoverflow.com/a/15066129/28169, +1:ed!).

Also added -readable to get rid of permissions-based problems.
More silence.
Made all print() look like function calls, and use range() rather than xrange().

This makes us work (again) with Python 3.4, which is a nice bonus.
Cut off the 10 largest files and test only on those.
Largest is not the same as smallest, it turns out.