Refactor filter and enumerate interval methods to be defined on the Stream constructor. These methods
seemed more like external class methods for creating streams than instance level methods.
Fixed range and filter methods. When constructing
streams must wrap tail in function so that it is
not executed immediately.