AI-627 Reimplemented calculated indicators as a specific FieldType
AI-627 Updated Expr tree in preparation for pivot indicators

- Renamed Placeholder -> Symbol to be more consistent with common naming in interpreters/parsers/etc
- Simplified Lexer
- Updated grammar to treat unescaped symbols as symbols (you can write A+B instead of {A}+{B})
- More cleanly seperated evaluation from parsing
- Removed type arguments from ExprNode: generic types are inappropriate as in this case
  they are large unknown at compile time.
Added trap for circular references