Support using dictionaries for labeled indexing

Fixes #187

As of this change, you can use dictionaries for indexing along a dimension, e.g., in the form `array.loc[dict(x='2000-01-01')]` or `array[dict(x=0)]`.

In particular, you can use this for *assignment*, not just for selecting values (e.g., `array[dict(x=0)] = 0`). It was previously difficult to do assignment with labeled dimensions in xray.