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)


I can't replicate the error on OSX 10.9.4 / Chrome 39.0.2171.71

```sh
Command: "/Users/boris/.nvm/v0.10.35/bin/node screenshot.js"
    TAP version 13
    ok 1 should be equal
    ok 2 should be equal
    ok 3 should be equal
    ok 4 should be equal
    ok 5 should be equal
    ok 6 image is min 3 KB
    ok 7 image is max 4 KB
    ok 8 should be equal
    not ok 9 should be equivalent
      ---
        file:   /Users/boris/Sites/github/steer-screenshot/test/browser/screenshot.js
        line:   77
        column: 17
        stack:  
          - |
            getCaller (/Users/boris/Sites/github/steer-screenshot/node_modules/tap/lib/tap-assert.js:418:17)
          - |
            assert (/Users/boris/Sites/github/steer-screenshot/node_modules/tap/lib/tap-assert.js:21:16)
          - |
            Function.equivalent (/Users/boris/Sites/github/steer-screenshot/node_modules/tap/lib/tap-assert.js:182:12)
          - |
            Test._testAssert (/Users/boris/Sites/github/steer-screenshot/node_modules/tap/lib/tap-test.js:87:16)
          - |
            gm.<anonymous> (/Users/boris/Sites/github/steer-screenshot/test/browser/screenshot.js:77:17)
          - |
            gm.emit (events.js:98:17)
          - |
            gm.<anonymous> (/Users/boris/Sites/github/steer-screenshot/node_modules/gm/lib/getters.js:82:14)
          - |
            cb (/Users/boris/Sites/github/steer-screenshot/node_modules/gm/lib/command.js:264:16)
          - |
            ChildProcess._spawn.proc.on.onExit (/Users/boris/Sites/github/steer-screenshot/node_modules/gm/lib/command.js:246:9)
          - |
            ChildProcess.emit (events.js:98:17)
        found:  
          width:  800
          height: 564
        wanted: 
          width:  800
          height: 600
        diff:   |
          {
            "width" : 800,
            "height" : 564 // != 600
          }
      ...
    ok 10 should be equal
    ok 11 should be equal
    ok 12 should be equal
    ok 13 should be equal
    ok 14 should be equal
    ok 15 should be equal
    ok 16 should be equal
    ok 17 should be equal
    ok 18 should be equal
    ok 19 Got gm error
    ok 20 should be equal
    ok 21 should be equal
    ok 22 test/browser/screenshot.js
    
    1..22
    # tests 22
    # pass  21
    # fail  1
    
total ................................................. 21/22
```