Position angles in triangles based the size of the angle label.

Angles are positioned by calculating a circle which will bound the span
containing the label. The label is then moved so that the circle lies
tangent to the two triangle sides. This tucks it as close into the corner
as possible with overlapping the side.

This fixes issues #9732 and #5899