#325 bookkeeping issue in reverse mapping

This PR fixes the issue as described in #325. Before merging, the reverse mappings which are either constant, ignored or expression need to be removed from the forward mapping before the forward mapping can act as a base for the reverse mappings.

Next, there was an issue in the unit tests, in which a source mapping was marked as ignore (iso the target).

Finally the enum mapping did ignore the mergeWithReverseMappings.
Does this mean one *must* specify `target()` if one wants to ignore a specific property? Why is this? Specifying `source()` seems more natural to me and likely is what most people will do. After all, it's the source property that you want to ignore during the mapping.