Overhaul zoomable behavior

Fixes #253

See [the spec](https://github.com/NickQiZhu/dc.js/wiki/Zoom-Behaviors-Combined-with-Brush-and-Range-Chart)

Note, this depends on #399