Allow for reading variable length strings from NetCDF4

Creating the NetCDF4ArrayWrapper object also let me clean-up some other internal code for XArray objects.

I also created utils.NDArrayMixin to consolidate all my ndarray-like subclasses.

Partial fix for #57 -- we still could use support for *writing* variable length strings, but that is much less urgent.