Add option to override default resolution for Cairo backends

This adds the keyword argument `dpi` to the Cairo backends, for example:

```julia
draw(PNG("default.png", 1inch, 1inch), p)
draw(PNG("hi_res.png", 1inch, 1inch, dpi=300), p)
```

will result in a 96x96 `default.png` and a 300x300 `hi_res.png`