Add a ZoomToExtent control

This supersedes #824.

Not ready yet. I need to rebase and see if the examples conform to Tim's latest changes.