Handle open_revs retries at a higher level

This patch disables the httpc client retries for the request to stream
document revisions to the replicator.  The retry logic at that level
could end up jumbling together response body data from different
requests and thoroughly confusing the multipart parser.  Moving the
retry logic up a level allows us to start fresh each time.

I think I may need a shower after spending all day inside this module,
but the patch does the trick of allowing retries even with multipart
streaming attachments.  The retry logic does not increase the inactivity
timeout each time, so the test case from SRE still fails, but that's a
trivial addition.  For now I kept the same bounded exponential backoff
logic as couch_replicator_httpc.

BugzID: 21367
Remove unnecessary unlink

If we reach that unlink the Streamer is exiting normally.  The parent
process is not trapping exits, so the normal termination of the Streamer
will be a noop with or without the unlink.

BugzID: 21367
Evaluate self() in the correct process

Still managed to get caught by that one after all these years.  Also
added some documentation explaining why we null out the retries in
send_req.
Log retries and failures for open_doc_revs

BugzID: 21367
Merge branch '21367-multipart-retries-break' into 20822-npm-stalls-out
Disable automatic retries of streaming writes

An automatic retry makes no sense here, as we've already streamed part
of the response body from the GET.  Disabling the retries bubbles the
error up to run_user_fun inside open_doc_revs allows us to retry the
whole GET + PUT correctly.

BugzID: 20822