restore trailing newline, fix no "close" event on node ~0.11.2

replacer works on data like so
1. split on newlines, save last fragment
2. join known full lines again and do string replace
3. on end, emit remaining fragment, before finishing (by enqueueing null)

Step 3 effectively ate the last newline, since there is no associated
`join(eol)` there, and just an empty string was enqueued.

I think this also surfaced an issue with the through library's drain()
function, which skipped emitting the "end" event if the buffer was an
empty string. Only on node 0.11.2 & 0.11.3, not sure why. See also
- http://git.io/hqEP0g
- http://git.io/Tp47kw