604 numeric axis width

This is a pretty old PR which I had to revive. Commit notes:

```
The calculation now just takes the max over all tick lengths.
While this will truncate some things if the user zooms in, it will
work correctly for static cases.

gutter() has been added to set the amount of extra space between
the tick labels and the edge of the axis. gutter() should now
be the preferred way to give extra room for decimal places on
zoom, rather than explicitly setting the width with width().

axisTests.ts was still hanging around, so I got rid of it.
```

Close #604.
I would prefer the phrasing "the extra space between the tick labels and the outer edge of the axis". "Beyond" is a bit  abstract.