Tick labels can be repositioned.

Changed BaseAxis to draw tick marks in one <g> and tick labels in another.
  - This allows the tick labels to be repositioned as a group,
    and opens up the possibility of having multiple tiers of
    tick labels in the future.

Factored out _computeWidth() and _computeHeight()
  - These calls calculate the width/height of the axis, so
    the layout logic can live in BaseAxis.

Tick labels can be positioned relative to the marks on NumberAxis.
  - Functionality from the old Axis class, valid positions are
    [left/center/right] for horizontal axes and [top/center/bottom]
    for vertical ones.

End tick labels are hidden by default.

Added more tests.