Return undef, not 0 or "", on failure/EOF for next_* methods called from READLINE

Otherwise the canonical example (that appears in docs, too):

    while (<$input>)

will loop forever on failure or at EOF since it checks defined-ness.

The next commit will add guards to all READLINE methods, but it is worth
using consistent undef return values even for direct callers of next_*.
Most of the *IO classes already do this, but the classes touched here
appear to have slipped through the cracks.

Note that I also audited for cases where empty objects were returned on
failure, since that leads to infinite looping too.
Only return true values and undef from READLINE in scalar context

The common readline idiom

    while (<$in>)

checks defined-ness and doesn't work as expected when defined-but-false
values such as 0 or the empty string are returned.  Since these are tied
objects mocking filehandles which deal in records not strings, returning
0 or "" is never expected or desired.

This is a guard against bugs such as those in 5451e4d.
Merge pull request #68 from tsibley/readline-return-undef

Always return undef from READLINE for EOF or failure