AMQP-422 PublisherCallbackChannel: Postpone Close

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

Add `stopSemaphore` and `closeTimeout` option to the `PublisherCallbackChannelImpl`
to postpone physical `close` until timeout or handlong for all pending confirms

Decrease `@Repeat` for `RabbitTemplatePerformanceIntegrationTests` for better build performance

AMQP-422: Rework `stop` logic to the scheduling

AMQP-422: use `waitForConfirmsOrDie` from CCF

* Revert all changes to the `PublisherCallbackChannelImpl` class (leave just code style polishing)
* Add to the `CachingConnectionFactory.CachedChannelInvocationHandler.physicalClose()` to postpone
`Channel.close()` `if(publisherConfirms)` and use `waitForConfirmsOrDie` in that separate `Thread`
* Add a couple of test to demonstrate new logic
* in case of just `publisherReturns` `Channel` is closed normally as it is now

AMQP-422: Add `active` check to the async close logic

AMQP-422: NPE fix and `catch` logic

AMQP-422: Accept stop schedule for `publisherReturns` too

Change wait timeout to 5 seconds

AMQP-422: Use `Thread.sleep(5000);` for `publisherReturns`

Polishing