Extract declation of CompressionCodec in cli and make optional via env

Not sure whether we want/need those last three commits. The nice this is now Snappy is _only_ mentioned in ivory once.

Looks like there is some cleanup around the duplication of some of those APIs (eg. SequenceWriting and IngestFactsets) but I might leave them for another day.

/cc @markhibberd