Profiled code + example of uneven grids

The EvenCoordinateMap performs almost exactly as well
as the old code once the maxds has been changed to the current value
(adds roughly 30% to time) required for the uneven grid code.
Added get_coordinate_map

Autodetects which coordinatemap to use given dimension `x`. Also
tidied up some parts of the code.