Simple, flexible rich text rendering/editing on HTML Canvas