allow dataset argument to take field objects #338

The dataset argument to operations now takes field objects in addition
to request datasets. A number of changes were made to the codebase to handle
this new condition. The includes changing how netCDF files are written.
There is now a method on dimensions to write to an open netCDF dataset objects.
The temporal dimension was also streamlined to include the numeric conversions
that were previously in a netCDF-specific temporal dimension object.