#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.
Its in the unit test:

```java
    @MapNullToDefault
    @Mappings({
        @Mapping(target = "seatCount", source = "numberOfSeats"),
        @Mapping(target = "model", constant = "ModelT"),
        @Mapping(target = "catalogId", expression = "java( UUID.randomUUID().toString() )")
    })
    CarDto carToCarDto(Car car);
```
Will provide a target object `CarDto` with the above expression and constant populated.