Convert expressions to target field format

Fix #11000
Fix #10995
Fix #10993
I think would just be better as a new overload arg, or method for `evaluate()`. Maybe something `evaluateForTarget()`, or just as a overloaded method.  This means you can have one expression and eval it for different types. 

Also means we are not carrying around a instance variable just because, and the API and intent would be clearer IMO