#168 allow to globally configure mappings using @GlobalMapping

I had to move ```@Mapper``` and ```@MapperConfig``` to ```core``` and ```core-jdk8```, as they now require ```@GlobalMapping```, which in turn requires ```@Mapping```... 
On a general note, I'm a bit concerned about the comprehensibility of this approach. IIUC, these global mappings will be "mixed in" automatically, making it harder for a reader of a mapper interface to reason about the applied mappings. Also there is a complexity of resolving the "right" mapping in case of several candidates.

Have you considered more explicit alternatives? E.g. something like this:

    @MapperConfig(
        namedMappings = {
            @NamedMapping( name="idToPk", mapping = @Mapping(source = "id", target = "primaryKey") ),
            @NamedMapping( name="auditTrail", mapping = @Mapping(target = "auditTrail", ignore = true) )
        }
    )

And then:

    @Mapping(name="idToPk")
    @Mapping(source="other", target="otherTarget)
    public CarDto carToDtoCar(Car car);

Or

    @AdditionalMappings({"idToPk", "auditTrail"})
    @Mapping(source="other", target="otherTarget)
    public CarDto carToDtoCar(Car car);

This would make things much more easy to understand and trace IMO and also avoid any ambiguities. Of course it's a bit more verbose. As a middle ground, one could also think about "importing" named mappings on the class-level of a mapper and auto-apply them to all methods it defines where it's suitable. Any thoughts?