JIRA: https://jira.springsource.org/browse/INT-3199
* Set `TypeDescriptor` to `Void.class` as default `targetParameterType` for falling-back
* Change `fall-thru` only to one method:
* Extract generic type from `Massage` parameter, so now
``` m1(Message<String> message);
m2(String payload);
```
are equal by `payload type` and similar POJO causes ambiguity configuration exception
INT-3199: Polishing and further fixing
* Address PR's comments
* Provide more friendly exception message for `Void.class` method
* Remove the logic around `@ServiceActivator`:
- one part was fixed within INT-3114
- another for `RequestReplyExchanger#exchange` doesn't make sense as it is good candidate
* Add fallback to `Iterator.class` method for `Iterable` payloads
* Add tests
Polishing
INT-3199: Add `handlerMessageMethods`
* Introduce separate properties:
- `handlerMessageMethods` for methods with `Message` parameter
- `handlerMethod`, if there is only one candidate after configuration
* Polishing several tests according new state of `MessagingMethodInvokerHelper`'s properties
Polishing
Revert `RequestReplyExchanger` fallback
Add `fallbackMessageMethods` processing
INT-3199 Polishing
Only revert to RequestReplyExchanger if there are ambiguous
fallback methods - if the target object is an RRE, it will always
have a candidate fallback (exchange).
Add more RRE tests.
Make ParametersWrapper a public inner class - it's only used
within the context of a process() call. Making it public allows
SpEL to access its properties without reflection.