sublime project tweaking, unimportant remix
give precedence to the more recently declared classes when iterating through __subclasses__
File objects can now specify custom grid types

This is necessary for making convenience getters for ggcm / psc / etc
add custom readers for OpenGGCM and PSC, and an example how to customize them yourself if needed
_COMPONENT_NAMES doesn’t need to be a dict, probably a relic of some other use in the past
implement field and coord transformations on load

this is most accessible by subclassing Grid, as exemplified in viscid/reader/openggcm.py
track some scratchy benchmarky stuff
regenerate .c files with cython 0.20
translate ggcm files to GSE by default

This can be customized per script by
viscid.readers.openggcm.GGCMGrid.mhd_to_gse_on_read = False
bugfix: have a pre_reshape field transform, and a post_reshape field transform

This fixes reading 2d openggcm files, since before the reshape, the array is 2d, so fld[:, ::-1, ::-1] makes no sense
refactor Rectilinear -> NonuniformCartesian; “Rectilinear” -> “nonuniform_cartesian”
plotting openggcm ionosphere files now shows something

The coordinates are best guess, and the dawn/dusk hemispheres look flipped,
but it plots something now.
use copy=False more frequently with np.array to save time and memory on array allocs

This is done in places where I don’t think the constructor is changing the contigusousness of the array
if grid[‘fldname’] fails, you now get an attribute error on _get_fldname method lookup…
but it’s a dict interface, so raise a KeyError
openggcm reader: add _get_b by doing scalar_fields_to_vector for convenience
put more functionality in to openggcm.py
small syntactic sugar