Add for two new mapping algorithms
Refactor the Mapping structure for adding DistanceAwareMapping and
OptimalGreedyMapping.