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 seems like there's blockId, and there's a small difference in how we handle default values (installFunctionalApiCallBlock allows you to specify a default in options, installFunctionalBlock makes assumptions based on the arg type/name). I could probably convert Eval to use installFunctionalApiCallBlock and may do so at some point, but I think I'm going to leave it be for now.