Refactor: tag replies safely and avoid using erlang:demonitor/2

For efficiency reasons, instead of demonitoring (which leads to scanning the
entire mailbox), cope with duplicate monitor refs when collating gen_server
replies.

For safety, tag the exit signal (which we treat as a result) with a unique
reference instead of the middle-man's pid.