Simplified a lambda on an Optional.

Creating an Optional inside a lambda requires flatMap.
Just returning a value allows the use of map.
Doh!
Added support lambda's and method references in the XmlProcessorBuilder

Lambda's and method references could not be passed to the addParser and
addControllerFactory methods, because these synthetic types do not
retain type information at run-time. Reflection doesn't work.

To solve this:

- The original methods detect this situation and throw an
IllegalArgumentException.
- New interface methods were added, allowing the type to be passed as
 a second argument (in a type-safe manner).

 Now lambda's and method references can be passed!