WMSTileFuser improvements

I have modified the WMSTilefuser class improving the image reading/writing by avoiding the direct call to ImageIO.read()/ImageIO.write() methods.

Also I improved the PNG encoding by using the new PNG writer present in GeoServer.

For PNG8 and GIF images I calculate the optimal palette.

I also added 3 different RenderingHints configuration (SPEED,DEFAULT,QUALITY) which can be used when the image is scaled.