locals: allow slots in various for loops
slotworks: Allow two uses per a function call

So cases like foo():bar() are supported
unwarper: Squash a start to an end for a subexpression

Instead of the end to the start as it was before. It just makes
more sense and fixes few slot occurances in case of subsequent
subexpressions
unwarper: limit a body for a subexpression search

So it won't be fooled around and turned into loop
unwarper: Improve logic for an unconditional warp within an expression

It actually could be negative as well as positive, so we can guess
an operator correctly.
unwarper: Improve the _is_used_in check to match nested function calls
unwarper: ... and remove it as we don't need the checks
test/expression: Add more testcases