bring in auto instantiation for Receiver#flunk

The receiver implementation should know about its domain and direct the
engine via the flunk method. In other words, the receiver implementation
knows what is a remote error [class] or not and calls flunk accordingly.

The ReceivedError class is at the disposal of receiver implementations to
wrap remote errors with unknown classes or any error that is simply, remote.

The name "ReceivedError" could be changed to "RemoteError" or "WrappedError",
let's keep that open for a week. "ReceivedError" sounds OK because it's
useful along with a Receiver.

Let's not try to make flunk too smart.