Reorganise a bit, replacing some interfaces with concrete classes.

The CdfReader class now only does low-level record reading.
The CdfContent class is now a concrete class, and its constructor
takes a CdfReader instance.  Variable and Attribute classes are now
concrete classes not interfaces.  These things are not likely to have
other implementations, so it's clearer to have them like this,
and probably saves a few lines of code too.  Also, separating the
concernns of CdfReader (reading records) and CdfContent (turning
them into variables and attributes) is more elegant and healthy.
Document STIL parts of CDF library