msProjectionsDiffer(): use proj4 string normalization

If regular comparison detects a difference, then asks proj.4 to
return a proj string after it has resolved stuff like +init=epsg:XXXX.
This helps msDrawRasterLayerLow() figuring out that "init=epsg:3857"
and "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +units=m +k=1.0 +nadgrids=@null"
as defined in maptile.h are indeed the same projection, to avoid
going to the slow resampling path.

I have tried instead to put that normalization logic into msProcessProjection()
itself but altering the p->args cause issues in a number of other
places.
msResampleGDALToMap(): optimizations for tiled queries

If requesting at the raster resolution, on pixel boundaries,
and no reprojection is  involved, we don't need any resampling.
And if coordinates and dimensions match an integral subsampling
factor, no need to  add pixel margin.
This optimization helps a lot when operating with mode=tile
and that the underlying raster is tiled and share the same
tiling scheme as the queried tile mode.