Nil literal convertible

Stream conforms to `NilLiteralConvertible`, and we use `nil` wherever possible.

In addition to reducing the cognitive load of the type, this has much better behaviour w.r.t. type inferencing in a couple of cases:

- when returning `Stream<U>` from a method on `Stream<T>`
- when the value would otherwise have to be explicitly specified as `Stream<Int>.Nil` instead of simply `.Nil` or `Nil`

Fixes #38.