Change the way endpoints are resolved. Use an interface instead of strings.
Add dsl and example for custom projection of backend valued to api resource
Remove unused method (and reformat code)
First stab at implementing the code behind the DSL.

This commit adds a number of concepts which should be of used when implementing the mapping backend

*Elements* - Elements are the root type for the data that is recorded when you invoke the DSL, they are currently of two flavours: Message and Mapping representing error messages and mapping types
*Mapping* - Mapping is a new type that represents the different ways you can source data for a mapping. There are a number of subtypes of Mapping like ConstantValueMapping which represent the specific strategies and their potential partial state within the dsl.
*Visitors* - There are visitors defines for traversing the different element types and for visiting the different mapping source strategies
*Implementation* - There is a new RecordingMapper which implements the DSL in such a way that it records a number of Elements as defined. This class is aware of partial configuration of the mappings and will do certain low level error checks to make sure you aren't, for example, binding multiple sources at the same time