Expressions could not handle float in arithmetric operations

A feature allowing for terms of type STRUCTURE to return float directly
into the arithmetic interpreter. The interpreter only supported numeric
values of type double.

Eg. TARGET:DISTANCE returned float type.

```WAIT UNTIL TARGET:DISTANCE < 10000.```
Would then fail because the float value wasn't cast to double.

Instead of just changing the return value of TARGET:DISTANCE, I added support for more numeric types in expressions.