Buffer dirty extent when rendering

When the vector layer renderer is notified that a particular extent is dirty, it needs to buffer that extent to account for features in the surrounding region that might intersect the dirty extent depending on their symbolizer.

An efficient way to ensure that all potentially overlapping features are redrawn is to buffer the dirty extent by the maximum symbolizer size drawn.  These changes add a `ol.extent.buffer` function to do the buffering and keep track of the maximum symbolizer size (in pixels) in the vector layer renderer.