Add hashFn option to specify custom hashing function

Using this option I'm able to replace the default hash with `sha1` hash using an option like:

```js
var tree = Fingerprint(..., {
  ...,
  hashFn: function(buf) {
      var shasum = crypto.createHash('sha1');
      shasum.update(buf);
      return shasum.digest('hex');
  }
});
```

I also considered overloading the customHash option for this, but I was not in favor of that solution.