domainer accounts for scale.domain() === [x, x]

If the `scale` passed to a `Domainer` had a 0-size domain, the `Domainer` would mess up and always return a 0-size domain. This was because `scale.scale(x)` is not invertible in this case; all values map to `scale.range()[0]`:

```javascript
> var s = new Plottable.Scale.Linear();
> s.domain([5, 5]);
> s.scale(5);
0
> s.scale(6);
0
```

This branch avoids the problem by skipping any scale with `scale.domain()[0] === scale.domain()[1]`.

Close #740.