Support dashed borders with new border path.
Dashed border edges are handled by the standard ps_border_edge shader. Dashed border corners instead create a clip mask for the border and draw each dash stroke to the clip mask. The math for determining the correct dash strokes is too complex to evaluate efficiently in a shader, doing it this way allows us to support arbitrary kinds of dash strokes. In the future, we will either specialize this to a border render task (to avoid the clip mask target allocation for the whole border rect), or make use of upcoming optimization work in the clip mask code to handle this case more efficiently. This will also serve as the basis for dotted border corners, which are also too complex to evaluate inside a shader. For now, we just treat everything as an ellipse when evaluating the dash strokes. This gives the correct result for ellipses and circle radii, but is very inefficient for circles. As a follow up, we will include a fast path for corners where the x/y radii are equal. Deciding the exact dash length etc is not well specified. The current code is a rough approximation to what Gecko does. In the future we can iterate on this and make it closer to Gecko's rules for dash length.