Bugs
Deal with whole file compression.

Also rearrange CdfReader to make it possible to use it externally.
RecordFactory now creates records by hand, not using reflection.

As well as eliminating reflection which is in general a questionable thing
to use, it allows custom construction of Record instances (they don't
all need to have the same constructor signature).  This in turn provides
a hook for per-instance variation of RecordFactory behaviour, which
we will need for coping with differnent CDF versions.
Byte count bug.

Add the pad byte length before asserting read buffer length for
VariableDescriptorRecord.
Accommodate version-dependent record organisation.

RecordFactory is now used as an instance not static methods.
The instance is constructed based on CDF file version.
Use this to accommodate different lengths for the name field
in AttributeDescriptorRecord and VariableDescriptorRecord
(64 in v2.6/2.7, 256 in v3).
Add record type abbreviated names.
Add dump utility.
Add -fields arg to CdfDump.
Fix some bugs thrown up by testing
Add basic CdfList tool
Fix variable compressed value read.

CVVR.cSize is (redundantly) compressed data size after all, so need to
work out the uncompressed size independently.
Add CdfList -data flag