Added OpenLayers-based widgets in contrib.gis (#5472)

Largely inspired from django-floppyforms. Designed to not depend
on OpenLayers at code level.