#252 merging reverse mapping with forward mapping.

There is also an error in the `Mapper#reverse` method class.  The check on constant / expression has been fixed.

Also, the order of forward / reverse method is not relevant (as thought before). This is been assured by adding some tests.
```java
OrderDto orderToDto(Order order);

@ReverseMappingMethod(configuredBy="orderToDto")
@Mapping(source="foo", ignore="true)
Order orderDtoToOrder(OrderDto orderDto);
```
If we use a dedicated annotation `@ReverseMapping` we don't leave much room for extension. I'd prefer the more generic `@MappingMethod`, and then use a string parameter such as `configuredBy` to get what we need. 

I see a kind of hierarchy, one overruling the other: `MapperConfig`, `@Mapper` new: `@MappingMethod` and `@Mapping`. What I meant is you can stick parameters such as (for example) `qualifiedBy` to these annotations. The lowest level counts, so, for instance, if you find a `qualifiedBy` on `@Mapping` it overrules `@MappingMethod`. 

Your example would then look like this:

```java
OrderDto orderToDto(Order order);

@MappingMethod(configuredBy="orderToDto")
@Mapping(source="foo", ignore="true)
Order orderDtoToOrder(OrderDto orderDto);
```
For parameters to which this applies, its very easy to explain. WDYT?