Better treeifcation, if/else commands work

You can now add if/elses to bham. For the if command, use
= if ..., where ... would be a valid go template pipeline.
elses are like '= else'. As Go doesn't do implicit returns
like ...some... languages, there is less reason (if any) to
differentiate between - and = for if, else, range, with
statements. The way to get the PipeNodes is a bit hacky, in
that I just ask for a parsed version from the text/template
library, there also isn't much error checking there.

Structification happens earlier than before, so if/else/range/with
lines are preserved while regular lines can contain those words
without issues.