Start of a new FSTD interface.

Uses librmn to access the files, instead of the simple C code.  This should
make reading files (especially compresses files) more robust, and make it
easier to write FSTD files back out.
Implement low-level read access of the FSTD records.
Implement low-level output of FSTD records.
Move the low-level read/write interface into the FSTD_File object.
Add methods to encode/decode CMC timestamps.
Vectorize the date conversion.
Implement vertical level encoding/decoding.
Move the low-level file details to the extension module.

This includes the file object (and auto closing), and the data access functions.

Now, the only routines needed for reading/writing raw records are read_records() and write_records().
Make the FSTD record dtype accessible from Python.
Allow write_records to work with non-contiguous record arrays.
Check input records for the right type.
Start work on a Var wrapper for FSTD files.
Implement getview interface for FSTD_Var.
Add routines for encoding/decoding ig1,ig2,ig3,ig4.
Add 'L' type grid to the RPN_Var interface.
Minor bug fix in data type check
Remove a macro that validated the record format and made the array contiguous.

It ended up only being used in one place, so it's better to just put the
relevant code in there directly.
Add 'llfxy' function to convert polar stereographic coordinates.

Pure C function - to be called by a generic grid decoder interface.
Add a C routine to compute Gaussian latitudes.
Don't abort in date2stamp or stamp2date when invalid dates/stamps are provided.