Initial widget refactor w/ linegraph and svgcontainer and axes

The current state of my refactoring effort. In separate js files so it shouldn't cause conflicts.

widget-base.js contains the SVGContainer class, and the Axes class, both of which are used by the LineGraph class which is in widget-linegraph.js

I've also started trying to do a more thorough refactor of Axes, creating an Axis base class and LinearAxis, LogAxis and OrdinalAxis derived classes. That still has a long way to go, but I think it's promising. It's not complete enough to test whether it will work as I hope yet.

The goal of the Axes refactor will be to be able to have multiple Y axes in the same graph. (I expect that multiple X axes would also be possible.)