Rewrite ERB compiler to be easier to follow (#346)
Rewrite ERB compiler to be easier to follow (#346)

The previous ERB compiler was a mess. This commit makes it easier to
follow and read. It also makes it overridable, if we ever wish to.

merongivian/opal,jgaskins/opal,gabrielrios/opal,jannishuebl/opal,c42engineering/opal,c42engineering/opal,c42engineering/opal,jannishuebl/opal,castwide/opal,suyesh/opal,fazibear/opal,jannishuebl/opal,jgaskins/opal,opal/opal,Flikofbluelight747/opal,Mogztter/opal,bbatsov/opal,catprintlabs/opal,jgaskins/opal,iliabylich/opal,domgetter/opal,castwide/opal,catprintlabs/opal,gausie/opal,Ajedi32/opal,bbatsov/opal,iliabylich/opal,catprintlabs/opal,Ajedi32/opal,gausie/opal,wied03/opal,suyesh/opal,Flikofbluelight747/opal,Flikofbluelight747/opal,wied03/opal,fazibear/opal,merongivian/opal,iliabylich/opal,fazibear/opal,bbatsov/opal,suyesh/opal,wied03/opal,merongivian/opal,opal/opal,kachick/opal,gabrielrios/opal,kachick/opal,gabrielrios/opal,opal/opal,gausie/opal,Mogztter/opal,Ajedi32/opal,opal/opal,kachick/opal,Mogztter/opal,domgetter/opal,castwide/opal,kachick/opal,Mogztter/opal