Clip layer rendering to limited extent

For layers with limited extents, a clipping mask is set on the map canvas before drawing the layer canvas.  This avoids composing unnecessary blank pixels and removes the need to clear dirty portions of the layer canvas outside the current layer extent.

FIxes #2920.