Expression builder

add an expression builder to the configurable reports backend.

let's you do if/else statements, constants, and should be trivial to roll in arbitrary math expressions with a couple more classes.

need to figure out how to migrate the deprecated formats (but currently this is 100% backwards compatible).

possibly easiest read commit-by-commit. lots of moving stuff around.