This patch adds a least squares solver to solve the constraints for the "Constraints Thickness Mode". This will give much better results in common cases as shown below.
The square in the center was not a square at all in the old version. This was because the algorithm was only made to be used with 3 faces at a vertex.
There is also a little improvement to boundary handling with the constraints thickness mode.

