Refactor emplate literal emit for native ES6 and down-level

Separate emit functions for template expression and template literal for down-level and native ES6
Ah.  That makes sense.  IN that case we *definitely* need a comment explaining as such.  Perf related code optimizations are extremely fragile (i.e. someone could easily come along and remove this, stating that there's no semantic difference, and cause a perf degradation).

Note: it's still unclear to me why we need the optimization though.  Why not just emit the text of the node into the output, and then update the line/column information immediately after the literal is written? This would ensure we did not have to update things after each char. I'd be surprised if there was any perf hit there.   Or would that not work for some reason?