A working fix for compound assignment operators.

There was a bug related to the newly added compound assignment operators. That bug has been fixed, and some testing has been done, to ensure the fix is stable.

**The bug:**
Whenever we are looping over any simple math-expression in lape without
assigning it to any thing (`For I:=0 To 10000 Do J+1;`) Lape will eventually crash. (Either by a
simple "Access violation" (`*`..`/`-ops), or "Invalid Pointer operator" (`+`, and `-`-ops).
This bug also affected my compound operators, as they are made the same way as any other operator (+,-,/,* ...). I have written an alternative evaluation (lpvartypes.pas -> TLapeType.Eval) for compound operators to avoid that bug.

**Other changes:**
Not any in particular, i just made some changes to lpeval_res just to keep result type correctly defined for compound ops. Was not really needed tho.

If "scripters" did anything like: `WriteLn(i*True)` a very cryptic error was raised.. I added a temporarily workaround so it's not as cryptic, it needs a more proper fix in the future.