split concrete type generation out of MessageMapper

fixes #1621
Merge pull request #2557 from Particular/splitMessageMapper

split concrete type generation out of MessageMapper