Let's solve #729, Curved Text.

This pull request adds the basic ability to fabric.Text-like's to observe a fabric.Path. It includes a variety of options to control that relationship, such as observing rotation, simple collision detection, and a controllable distance offset along the path. It reimplements both JSON and SVG exporting features. It reimplements the JSON importing feature. It contains several minor bugfixes to existing fabricjs code. It provides detailed commentary of the algorithms related to the text-on-path feature for future development.
Travis build complained about this inline function, so it was removed to be a method.