Allow "normal" exit of websocket with `exit(:shutdown)`

Previously it was not possible to exit a websocket channel and shutdown
linked processes without an abnormal reason exit reason. If
`exit(:shutdown)` was called the process would exit with
`{{:shutdown, mfa2}, mfa1}`, which is abnormal. The inner `mfa2`, has
been removed so that `exit(:shutdown)` causes an exit with
`{:shutdown, mfa1}`. This means that linked processes (that don't trap
exits) will nolonger exit abnormally on receiving the exit signal,
allowing transient shutdown.

This change also means that no log message is produced for the websocket
process and any linked supervised process that is temporary or transient if
`exit(:shutdown)` is called.
Merge pull request #548 from fishcakez/ws_shutdown

Allow "normal" exit of websocket with `exit(:shutdown)`