use svg instead of canvas

Convert calc app to use svg instead of canvas. Didn't end up being too hard, and I think this def puts us in a better place.

Feel free to skim as much/little as you like.

One of the semi-interesting pieces is the hack to deal with spaces. getComputedTextLength (and similar functions to it like getBBox) seem to ignore trailing spaces, so setting the text to " + " gives the same width as "+". I deal with this by replacing the space with _, calculating the width, then putting it back to spaces. Let me know if you know of a better way.
![image](https://cloud.githubusercontent.com/assets/1767466/4706497/5a429028-5885-11e4-9d5c-6acfbecb512d.png)
So that we can style the characters individually.