[MAT-387] Make Expr constructors private

This makes the remaining constructors for OGNumeric subclasses
private and provides factory methods for them.
[MAT-387] Remove methods that took raw pointers

This includes some methods from OGTerminal, and some iss methods.
[MAT-387] Add doc comments, remove dead code
[MAT-387] Make some things const refs

Make things const where possible

[MAT-387] More const

[MAT-387] More const refs, simplify runtree cleanup

[MAT-387] Make more things const refs
[MAT-387] Reinstate disabled checks
[MAT-387] Fix up after rebase