Fix setting monitors on calling processes

When a process was in the waiting list, it was being monitored twice but only one monitor later got canceled.

In my system I have a lot of long living processes that are using poolboy.
Under heavy load, some of the processes got queued in #state.waiting with their pid and monitor reference. During checkin, another erlang:monitor was set, so after a couple of hours I started receiving long_schedule alarms. Using process_info I found out that the poolboy gen_server had ~12 million monitors.

The fix uses the monitor reference taken from the waiting list instead of creating a new one.