function pathPolygonAnnulus(r0, r1, a0, a1, vangles, cx, cy) {
    var rStart, rEnd;

    if(r0 < r1) {
        rStart = r0;
        rEnd = r1;
    } else {
        rStart = r1;
        rEnd = r0;
    }

    var inner = transformForSVG(makePolygon(rStart, a0, a1, vangles), cx, cy);
    var outer = transformForSVG(makePolygon(rEnd, a0, a1, vangles), cx, cy);
    return 'M' + outer.reverse().join('L') + 'M' + inner.join('L');
}
path a polygon 'annulus'
i.e. a polygon with a concentric hole

N.B. this routine uses the evenodd SVG rule

@param {number} r0 : first radial coordinate
@param {number} r1 : second radial coordinate
@param {number} a0 : first angular coordinate in *radians*
@param {number} a1 : second angular coordinate in *radians*
@param {array} vangles : angles of polygon vertices in *radians*
@param {number (optional)} cx : x coordinate of center
@param {number (optional)} cy : y coordinate of center
@return {string} svg path