Until recently, if we were asked to stroke a pattern we would
perform the stroke, and then for each segment of the stroke
do the fill with the pattern. This meant that we decomposed
shadings many times.
As an optimisation, we tried to perform the same trick as used
by the fill code; namely to perform a single rectangle fill, and
to clip that. That way the decomposition only happens once.
Unfortunately the mechanism we used to do that had problems. We
convert the stroke to a path to be filled and then called the
'fill with a pattern' code on that. The conversion of the stroke
to a path to be filled would be slightly different in many cases,
and in particular prevents the 'thin_line' code ever being
triggered. This produces nasty thickening of strokes.
So, we recode the optimisation here. We use a clip path accumulator
device, and stroke to that. That gives us an exact match. We
then fill that.