Prevent logical errors in IF command, fixes #515

- a double compared to not-a-double should not pass (Always fail that)
[for #515 ]
... idea for future: Certain doubles could return true (EG, 1 or higher
passes, below 1 fails?)
- also prevent list arguments like "li@3||2" from becoming "li@3OR2" by
only changing bridges and comparisonoperators when actually needed.
[Related to #519 ]