AGG Rendering hook to allow for passing mutable map properties via mapnik::request object

Datasources cannot be shared between rendering threads but styles can, as they are immutable (after #1723). If you wish to share a map, containing styles and no datasources, across multiple rendering threads then the only blocker is that the agg/cairo/grid rendering interfaces lack the ability to pass the properties that can be dynamic between renders like `width`, `height`, `extent`, and `buffer_size`.

This pull creates a new `mapnik::request` class to hold key dynamic properties and a new `agg_renderer` ctor to accept this object. This + using `mapnik::request` parameters to call `ren.apply_to_layer` can allow rendering to different images without needing to modifying the map `width/height/extent/buffer_size`.