Change send/2 so that it returns the pid or pids the message was sent to

To use *gproc* to register names using the *via* mechanism that was recently added to OTP (`gen_server`, `gen_fsm`, `gen_event`) it must provide a `send/2` function with the following spec:
```erlang
send(Name :: term(), Msg :: term()) -> pid().
```
Currently `gproc:send/2` returns the message that was sent and because of
that *gproc* cannot be used as a drop-in name registry for OTP. This patch
adds the `sent_to_key/2` function to be able to implement a name registry
on top of *gproc*. The new function has the following spec:
```erlang
send_to_key(Name :: term(), Msg :: term()) -> pid() | [pid()].
```
It will return the pid or list of pids the message was sent to.