* make BaseModelAdmin generic to properly type the `obj` argument of ModelAdmin.delete_model
closes#482
* turn BaseModelAdmin into bound generic, run black
* add test for generic ModelAdmin
By declaring return type as -> Callable[[_C], _C], Mypy can infer that
the decorated function has also the same arguments and return type as
the original.
View functions are constrained to return HttpResponseBase (or any
subclass of it).
Also added typecheck test coverage to most of the cases.