No end event from read stream when selector does not match any elements

```js
http.createServer(function(req, res) {
  var tr = trumpet();
  var head = tr.createReadStream("h1");
  head.pipe(res);
  tr.end("<p>no h1 element</p>");
});
```

This will cause the http request to hang forever as `head` will never emit an `end` event to end the `res` stream. This feels like a bug to me. It's ok that there was no data, but once the `tr` stream ends I think `head` should also end.

This is problematic for me in a scenario where I'm using trumpet to scrape data from html documents. Some parts of the document are optional and thus not always present. My fix is to listen to the `tr`'s end event and manually call `.end()` on all of my read streams (even though some of them were already ended by trumpet since there was a matched element).

I've used this approach to apply a fix to trumpet core itself, but I don't think it's great because iterating through *all* streams and checking `stream.readable` feels too brute force-y. I imagine there's a better way to keep track of `Result` objects that were never matched. If there are any other ideas I am happy to update this pull request.