Fix UnboundLocalError when a datasource of the wrong shape is looked for

We should raise a proper exception when the shape isn't correct as opposed to let an UnboundLocalError occur.
The call to `plot.plot` will enter `_get_or_create_datasource` [here](https://github.com/enthought/chaco/blob/fix-datasource/chaco/plot.py#L321), which pass through the affected code. What `ValueError` are you referring to?