support for encodings in sign

Instead of defaulting to base64 for sign this PR defaults to buffers and adds an optional encoding parameter

``` js
agent.sign(key, new Buffer('hello world'), function(err, res) {
  // res.signature is a Buffer
})

agent.sign(key, new Buffer('hello world'), 'base64', function(err, res) {
  // res.signature is a base64 string
})
```