604 numeric axis width

New heuristic:

1. For each tick value, add on decimal places equal to the precision (ex: `1` at precision 3 becomes `1.001`).
2. Run each value through the formatter and measure it.
3. Set the width equal to the longest width in pixels.

As a result, extra space will be given if a `General` formatter is used, so as to give enough room for decimal places if the user zooms in. There will still be issues if someone writes a formatter that produces dramatically longer ticks on zooming in, but that's really difficult to catch. This new implementation should work on initial renders.

Close #604.