Add in NumberAxis

Close #517.
Close #225.
#556 is also fixed if you use `NumberAxis`, but I'd hold off on closing that until we actually remove the old `Axis` class.

Differences from original `Axis`:
- Only handles numerical data.
- End tick labels shown by default.
- Baseline shown by default.
- Can only take in a Plottable `Formatter` (`Abstract.Formatter`) for the formatter.
- Can't set the position tick labels relative to the tick marks (they are always centered), but that functionality can be added in (no one seems to be using it right now).

In addition, `NumberAxis` will try to auto-size its width/height (if vertical/horizontal), although  an explicit width/height can be forced with the `width()` and `height()` calls. Calling those functions with an argument of "auto" will switch auto-sizing back on. In the future, I'm going to try to move that functionality to `BaseAxis`, as other axis types may want that functionality.

Going forward, I think a good policy is to show as many features of a component as possible by default, so people know they exist (in this case, baseline and end labels, even though the labels may be cut off).

I'd also like some discussion regarding auto-width/height. Generally, I think it's helpful to be able to auto-size, but I don't expect we can come up with good/efficient algorithms in all cases, which is why I think it's important to have a user-controllable override for sizing.
TextUtils are seperate from wrapping concerns (thats WordWrapUtils). The main thing is `writeLineHorizontally` which takes in a `string` to write, a `g` to put it in, `width` and `height`, for the box that the string must live in, and `xAlign, yAlign` for positioning within the box. I think using this approach is preferable to implementing custom logic with `em` shifts and so forth because it will be easier to maintain and easier to reason about if all of the messiness of svg text is hidden in the utilities, and the mainline plottable pieces use higher level / easier to reason about calls for text placement