Program more defensively in eager_reader buffering

In particular, attempt to fail faster in event of lastError being set:
a mysterious hang condition was made a non-terminating one even though
it should have rapidly caused an "Unexpected EOF" error.

In the same vein, inject an EOF when the buffer fills rather than
relying on absolutely correct behavior from the underlying stream to
do so.

Also, upon re-reading this code at some length, I was left confused as
to how 'bufMu' is an alias into the 'more' condition variable's lock.
Rewrite this to be more verbose but re-enforce this relationship.
Round up target fragment size to avoid tiny tail-end request

The integer floor division would result in a remainder of a few bytes
being done in its own request.  Chop this out by rounding up instead.