AMQP-402 Log When Broker Closes Channel

JIRA: https://jira.spring.io/browse/AMQP-402

Previously, when sending a message to a non-existent exhange,
the error was silently ignored and the connection factory
created a new Channel on the next use.

Change the `CCF` to implement `ShutdownListener` and log an
error for any non-normal channel closes.

Also, change the `PublisherCallbackChannelImpl` to also implement
the `ShutdownListener` and generate `NACK` callbacks for each
pending acknowledgement.

In addition, generate the same NACKS in the event the client
phsically closes the channel.