Handle loops within {%block%} and {%extend%}

When base and parent templates within {%block%} tags contain for loops,
there is an 'unsafe L' error due to matched variables automatically
being bound in case expressions.  This wraps the case statement in a
function call, containing the 'L' variable, and preventing a crash.

This also adds the relavent test.
Flush news + drop 17.0 tests on travis.
Move all for loop logic to erlydtl_runtime (#167)