BUG: fix encoding issues (array indexing now resets encoding)

Fixes #156, #157

To elaborate on the changes:

1. When an array is indexed, its encoding will be reset. This
   takes care of the invalid chunksize issue. More generally, this
   seems like the right choice because it's not clear that the right
   encoding will be the same after slicing an array, anyways.
2. If an array has `encoding['dtype'] = np.dtype('S1')` (e.g., it
   was originally encoded in characters), it will be stacked up to
   be saved as a character array, even if it's being saved to a
   NetCDF4 file. Previously, the array would be cast to 'S1' without
   stacking, which would result in silent loss of data.
Fix string encoding test on Python 3
Use a contextmanager for roundtripping in test_backends

With the current implementation, it looks like might end up deleting
the path to files opened with netCDF4 before we are done looking
at the values, because roundtrip (for netCDF4) returned after exiting
the create_tmp_file context manager. I'm actually not entirely sure
how we managed to get away with that...
Merge pull request #163 from shoyer/encoding-fixes

BUG: fix encoding issues (array indexing now resets encoding)