Revert "Optimise the do { ... } while read loop a little"

This reverts commit 189da24b1f333b682ad592b9705ce1f6d010944c.

This commit changed the do { .. } while loop expression from
'bytes_read > 0' to 'bytes_read == BUF_SIZE'

However this causes a problem when reading from a pipe (which is where
the email is comming from via the MTA). The kernel may sometimes split
up the data it reads before sending it down the pipe. Thus we can
legitimately end up in a situation where we read < BUF_SIZE bytes, yet
there is still more data to come and we exit the while loop prematurely.

By reverting back to the previous behaviour we don't run into this
problem as we just keep reading until there really is no more data.

Reported-and-tested-by: Graham Thomson <g.thomson@pccl.co.uk>
Signed-off-by: Andrew Clayton <andrew@digital-domain.net>