Reject all expressions with __ in them.
expr: Improve documentation.
BulletML.FromDocument: Type detector. Various setstate bug fixes.
NumberDef: Store 'expr' field, a string for things that will get evaled but a static number for times when it can be computed at compile time. Allow numbers to be passed to the constructor.
INumberDef: Pre-int-round static values.
Separate element constructors from regular constructors.
NumberDef: Bind random and builtins in a separate dictionary. Replace $rand with random(), to allow it to be used twice with different results in the same expression.
Evaluation optimizations.
INumberDef: Rounding version of NumberDef.
Expression evaluator.