#295, introducing MapNullToDefault

See discussion #295. This new annotation on mapping method level (and new methods in the `@MapperConfig` and `@Mapper`) introduce a new mechanism to determine the output of a mapping method when the source is null.

For beans, an new empty bean is returned (and constants + expressions are populated).
For iterable mappings an empty collection is returned
For map mappings an empty map is returned.

The mechanism is aligned with other hierarchy mechanisms, such as the collection strategy.
 > But that all depends on how you see constants and expressions. I don't see them as part of the source object. The annotation concerns what to do in case of null source objects.

Agreed. I only don't understand why constant/expression should have an influence on the overall return value. They relate to one specific target property, but IMO they should not control whether the target iself is null or not. That's two different levels of control/granularity to me.

> The 'UUID' case (where I do need to add a UUID to a target even when the source is null) is quite common for me. Just as the constant.

Ok, but why don't you just configure `RETURN_DEFAULT` on the `@Mapper` or `@MapperConfig` level then? Seems much more regular to me.

> What we could to break the stalemate is to introduce an additional enum value.

We could, but I'm not sure whether that additional piece of complexity really pulls its weight. Let's get started simple, with the way I propose, and see whether it flies in practice. We still can add an enum value down the road, should it really turn out to become a pain without it.