Proc can't be used as the second argument for `eval` in 1.9+
Death to false semicolon :metal:
Refactor Line parsing

* Parse every Line using Regexp
* process_line takes a Line
Convert the whole template into Lines at the very beginning

* Now we can loop through them using the Enumerator-ish interface
* This way we could get rid of some ugly methods such as un_next_line and raw_next_line
Let the Line strip its own text
Each Line knows its index
Let the Lines know their whitespace themselves
Scan the whole template at once rather than doing that per each line
Get rid of extra :eod marker from the parse result nodes
Cosmetic edits