Refactor loops so that condition can be evaluated asap, close #1105

`during` and `asLongAs` loops now have an `asap` parameter (defaulting to true) that cause the loop condition to be evaluated in every element composing the loop. If the condition fails, the session is directly propagated to the loop exit with passing through the `While` controlling the loop.

The same principle has been applied to `tryMax`.