Add intent for output ig1/ig2 of set_igs2.
Check for cartesian Z grid, and use the x/y arrays directly.

This avoids some numerical errors introduced when using the lat/lon fields
provided by c_gdll.
Encode Cartesian lat/lon coordinates for FSTD files.

Rotated / projected coordinates not supported yet.
Attach the !! record to the variables through ip1/ig1, ip2/ig2.
When writing lat/lon records, make sure the data is of the right type.
After encoding the HY/!! records, encode the vertical axes into the raw IP1 values.
Add any missing FSTD axes and put them in the expected order.

(Prep for writing FSTD files).
Forgot to add grid type info when creating lat/lon records.
Put a better default for 'deet' in normalize_fstd_axes.
Convert processed Var objects to FSTD records.
Finish the 'save' functionality.

NOTE: The resulting files don't seem to be recognized by RPN software yet.
Write the '>>' record before '^^'.

This is just a cosmetic change, for easier comparison to the original test file.
Fix bug in encode_latlon - was terminating the function too early.