Hide overlapping tick labels; width()/height() return actual width/height of axis

Imported hideOverlappingTickLabels() from the old Axis class. Going forward,
I'd like to address the problem of overlapping tick labels via more flexible
tick generation on the scales, as I think that would produce better results.

.width() and .height() now return the actually-used width/height if invoked
with no arguments.