Complete rewrite of the hobby module to be more robust and versatile.

Based on better understanding.

Robustness was gained by basing some of the calculations on the polar
form of the vectors. This makes calculations possible where before
NaN was the result.

Also, new apis based on polar coordinates where established and the
naming of the methods was overhauled.
Basic actions are:
 * tension2magnitude
 * magnitude2tension
 * tension2control
 * control2tension

 Please enter the commit message for your changes. Lines starting
"second"; BTW, I prefer "on-curve" to "on curve", so feel free to write that everywhere.