Refactor AbstractHeaderMapper

This commit refactors header mappers in several ways.

1. A HeaderMatcher interface has been introduced to replace the
lengthy checks in shouldMapHeader. Several implementations
of that interface are provided
2. An additional patterns has been added that maps any header
that is *not* a standard header. It uses the standardHeaderPrefix
property for that
3. The default behaviour has changed. Standard request/reply headers
are mapped as well as all non standard headers: this basically means
that custom headers are now mapped by default
4. A number of protected method that were only used to create the
instance have been removed in favour of a non default constructor.
Subclasses should provide those *static* values in their own default
constructor.