Add a do-setv keyword

do-setv sets the variable to the last result of the do chain
Enhance the if mangler to avoid creating a function

This closes #118