add support for png screenshots

png seems to produce better quality images.

note that this is a breaking change, because the module api changes:

```js
// before:
screenshot(chrome, Number, callback)

// after:
screenshot(chrome, { quality: Number, format: String }, callback)
```

jpg@100:
![svgs-to-fonts-demo-spec](https://cloud.githubusercontent.com/assets/1761758/5563065/160ceebc-8e09-11e4-8333-ca3e8e3159c2.jpg)

png@100:
![svgs-to-fonts-demo-spec](https://cloud.githubusercontent.com/assets/1761758/5563066/161287b4-8e09-11e4-93ee-84d160c45027.png)


`screenshot` is an async function, so exceptions should also be async. Why diverge from this convention?