bugfix 19139: Make OpenLayersWidget respect GeoModelAdmin's modifiable attribute

ref https://code.djangoproject.com/ticket/19139
hm, it worked! Now could you just add a try/finally block like this so the cleanup is always performed even if the assertion fails?
```
admin.site.register(City, UnmodifiableAdmin)
try:
    geoadmin = admin.site._registry[City]
    ....
finally:
    admin.site.unregister(City)
    admin.site.register(City, original_geoadmin.__class__)
```

Please also squash your commits and follow the commit message guidelines in our [patch review checklist](https://docs.djangoproject.com/en/dev/internals/contributing/writing-code/submitting-patches/#patch-review-checklist). Thanks!