ENH: add single axis zoom

Note: only the last commit here is relevant, as this is based on the refactoring in #104.

This hits one of the check marks in the 0.2 roadmap (#108), and implements an idea mentioned in the discussion in #63.