Don't silently ignore EOF in MIME message

This change makes read-until-next-boundary not consider an end of file within a part to be a legitimate end.  Rather, the end of file condition will be signalled.  A properly terminated message ends with a boundary and two dashes, and the code already caters for that.