add preprocess option and prevent mem leaks by exposing close()

`preprocess` option to pre-process downloaded body just before feeding it to readability:

```javascript
read(url, {
  preprocess: function(body, res, content_type, callback) {
    if (body.length > maxBodySize) {
      return callback(new Error('too large'));
    }
    callback(null, body);
  }, function(err, article, meta) {
    ...
  });
```

the `Readability.prototype.close()` exposes `window.close()` so one can clean up later and prevent mem leaks