request sub: use eval idiom that doesn't require so much brainpower

The only reason this worked and didn't go into the "or do" branch was
because when we'd return Hijk::Error::* none of the Hijk::Error::*
values were false, i.e. we'd at least always do this:

    $ perl -wle 'sub foo { return (undef, 1) } eval { foo() } or do { warn "noes" }'
    $

Not:

    $ perl -wle 'sub foo { return (undef, 0) } eval { foo() } or do { warn "noes" }'
    noes at -e line 1.

Just use eval { ...; 1 } or do { ... } instead for clarity.
Just stick a thing that fits easily on one line on one line
Rearrange the arguments of read_http_message()

This is needed for a subsequent change where I'm going to make
_read_chunked_body return extra error arguments.

Since anything using this function would subtly break rename it to
_read_http_message(). Also rename all the other internal functions to
indicate that they're private, we've never documented these functions.