allow triggering filter block when eof for initial state of input stream

Addresses #7, but not sure it is the right solution.

Note that this does break backwards compatibility somewhat if users assume that the block only gets called with data (i.e. see the change of line 418 of filter_io_spec.rb)


I think I’d prefer this loop to be written as

```ruby
begin
  …
end while !source_eof? && (length.nil? || length > @buffer.bytesize)
```