Fix ``wait'' nodes that are part of ``if'' and ``unless'' nodes.
Fix ``wait'' nodes that are part of ``if'' and ``unless'' nodes.

Slightly change the way that the ``wait'' node is flagged by directly
setting and clearing a flag instead of fiddling with a negative/positive
priority.  This is simpler and more clear.

Only clear ``wait'' flag in elements returned from ``if'' and ``unless''.
This fixes ``wait'' to work as expected in the following example:

    {
        if Conditions()
            wait if PoolingConditions() Actions()
        MoreActions()
    }

If Conditions() is false, then treat the ``wait'' like it's not there and
fall through to MoreActions().

If Conditions() is true, then wait for ``if PoolingConditions() Actions()''
to be true and stop processing the script at that point.

Before this fix, ``wait'' was tainting the element returned by the ``if''
so that the entire group stopped processing at the wait statement,
regardless of the return value of Conditions().

git-svn-id: b2bb544abab4b09d60f88077ac82407cb244c9c9@675 d5049fe3-3747-40f7-a4b5-f36d6801af5f

eXhausted/Ovale,ultijlam/ovale,Xeltor/ovale,eXhausted/Ovale,eXhausted/Ovale,ultijlam/ovale,ultijlam/ovale