Fixed #22001: Added new method `get_column_type` to `BaseDatabaseCreation`,
allowing child classes to have more logic then just string formatting a
value in the `data_types` dict. This was nessecary for postgis creation
where the name of the column type would change from `geometry(POINT, 4326)`
to `geography(POINT, 4326)` given the `geography` flag on `GeometryField`
(e.g. PointField(srid=4326, geography=True)).

Updated the `data_types` field in each `Creation` class under
contrib/gis/db/backends to include all the Geodjango fields.

Added a test and supporting classes in the contrib.gis module.
This code follows the way tests are setup in the test folder
under django/tests/migrations.