A final fix for compound 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.