Compute barycentric coordinates (u, v) for a point with respect to a
triangle.
This is needed for Cycles baking but we decided to push this
independently of the upcoming main baking changes.
Code adapted from Christer Ericson's Real-Time Collision Detection.
Cleanup, refactoring and review from Campbell Barton.