Make ellipses work with negative angles

Follow up to #3833

This adds support for negative angles.

Compared to canvas:

https://cloudup.com/cvxpvRFW6EG

```
    ctx.arc(100,100, 100, 0, Math.PI*2);

    ctx.arc(100,100,20, -9, -5);
    ctx.arc(200,100,20, 3, 4);
    ctx.arc(300,100,20, -3, 2);
    ctx.arc(400,100,20, 3, -2);
    ctx.arc(500,100,20, 0, 5);

    ctx.arc(100,100,50, 1, 2, true);
    ctx.arc(200,100,50, 3, 4, true);
    ctx.arc(300,100,50, -3, 2, true);
    ctx.arc(400,100,50, 3, -3, true);
    ctx.arc(500,100,50, 3, 8, true);
    ctx.lineTo(500, 0);
```