Do not raise on mailbox errors, instead log

This changes `Mailbox` to be more erlang-esque. 
A log message is generated when the mailbox is dead. 

`sync` and `future` have the same behaviour, but check before sending a message to a dead `Actor`. 

There are some erroneous log messages in the specs, but this is related to our shutdown process being non-deterministic.