Feature/wraptext

This feature fixes a text wrapping issue with the *analysis* text that appears beneath the stave. Sometimes, the text is too long and overlaps the analysis of other chords. Unfortunately, [canvas](http://www.w3.org/TR/2dcontext/) does not provide methods to wrap text, so we have to do it ourselves. 

This PR adds a utility function to wrap text and then modifies the notater to invoke it and *do the right thing* with the wrapped text.

@jazahn Can you review this when you get a chance? It's not the prettiest or most efficient word wrap you ever saw, but it does the job. Anything I can do to improve this?

Note: I branched this off feature/livenotes by accident, so this includes some unrelated changes from that branch. The main changes are in util.js and stave_notater.js.