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)


`_err.message` is an implementation detail. If the message changes, but the error is still a `TypeError`, that is fine. This is a functional test, to ensure that the right type of error is thrown.