update indentation
move the string rendering completely into svg and use tspans to manage the different pieces.
Note: this uses baseline-shift to do super/subscripts. This works in Chrome and Safari, but not in firefox (longstanding bug) or IE 9 or 10 (according to what I have read, I have not tested this myself)