Start.

Initial commit, includes makefile and a start at writing some of the
I/O infrastructure and Record classes.
Use RecordPlan and Pointer.

Replace Offset with Pointer (just a name change), and use RecordPlan
as the sole parameter for Record constructors.
Add AttributeEntryDescriptorRecord.

Some changes in Record as well required to accommodate records with
multiple options for the recordType field.
Use separate classes for gr/z AEDRs.

AttributeEntryDescriptorRecord has internal subclasses .GrVariant and
.ZVariant.  Back out of multi-type changes to Record superclass,
no longer needed.
Add .gitignore.
Miscellaneous tweaks.
Check read record sizes.

Add Record.checkEndRecord and invoke it in appropriate Record
subclass constructors.
Add DataType class.

DataType now stored as a class not an int.  However, I haven't written
any implementations of the DataType interface so far.
Improve checkEndRecord.
Add VariableDescriptorRecord
Add VariableIndexRecord
Add all remaining record types.
Minor change to the RecordPlan interface.

getContentOffset method replaced by createContentPointer, to avoid
duplicated code in Record subclasses.
Add RecordFactory.

Initial implementation of record factory based on reflection.
Not yet tested or fully functional.
Replace Buf.readLong with Buf.readOffset

The intention is to make sure that offset/size reading is treated
differently from data values, so that the same code can cope with
either 4-byte or 8-byte file offsets/sizes (CDF v2/v3).
Changes to format exception.

Use CdfFormatException instead of UnsupportedCdfVariantException.
PadValue needs NumElems.
Publicise final fields consituting Record fields.

The values that are read from the CDF file and stored directly as
final fields in the corresponding Record subclasses are now available
as public final fields in the corresponding classes.  Since they
are final this is pretty harmless, and saves a lot of tedious and
perhaps error-prone writing of accessor methods.
Minor changes.

Mostly moving functionality out of the Record subclasses and
so the relevant intelligence resides in classes which use them.
First go at reading classes built on top of Records.

Not complete - DataReader[Factory] not implemented, and compressed
and tree-structure VXR targets not handled.