Restore sleep interval between recovery attempt

Commit 6a04831 introduced a regression that lead to burst recovery
attempts when the broker is up but the listener is failing for some
reason (the most obvious one being that the destination does not
exist).

Since the sleep period between recovery attempts strategy is more
complex, we can't just sleep for a period of time. But we can create
an execution and apply it once which should work just fine for most
use cases.

Issue: SPR-12183
MethodReference accesses cached executor in a thread-safe manner

Issue: SPR-12269
Polishing
FormHttpMessageConverter uses a delegate class for JavaMail-based MIME encoding (isolating the JavaMail API dependency)

Issue: SPR-12108
JsonViewResponseBodyAdvice throws IllegalArgumentException in case of >1 view class specified

Issue: SPR-12270
Update default view resolver in MVC Java config

When not ViewResolver's have been registered, detect if the context
contains any other ViewResolver beans. If not, add InternalResourceVR
to match default DispatcherServlet behavior.

Issue: SPR-12267
Polishing
Correct check for ViewResolver beans

Check for bean names of type rather than actual beans.

Issue: SPR-12267