Eval cleanup

Address a bunch of todos, and better rationalize my object system. In particular, I got rid of evalString, making it so that we just use strings. Now we have an EvalImage class (which is drawable to the svg), and a bunch of children classes. One of those is EvalText, which draws a string with a style. If we call Eval.display with a string or a number, it creates an EvalText and draws that.
It should not be violated during normal user interaction, so this is more of an assert type thing to tell me if that assumption is false.
It looks like right now, I call with number, string, and evalImage. Perhaps better to just have three functions ensureString, ensureNumber, ensureImage?