feat: provide isNil(x) for checking if x is the end of stream marker
feat: provide isNil(x) for checking if x is the end of stream marker

This provides a very simple, and yet essential, function for type checking, as
_.nil is not a primitive variable but an object. This function is particularly
useful in a consume handler which has a signature of `consume<U>(f: (err: Error,
x: R | Highland.Nil, push: (err: Error | null, value?: U | Highland.Nil) =>
void, next: () => void) => void): Stream<U>`. Only with this function and an
updated typescript or flow definition, x can be distinguished between R and
Highland.Nil.

Example:
```
source.consume(function (err, x, push, next) {
  if (err) {
    // pass errors along the stream and consume next value
    push(err);
    next();
  } else if (_.isNil(x)) { // type guard is only possible with this function
    // pass nil (end event) along the stream
    push(null, x);
  } else {
    // pass on the value only if the value passes the predicate
    if (f(x)) {
      push(null, x);
    }
    next();
  }
});
```

vqvu/highland,caolan/highland,caolan/highland,vqvu/highland