Fixed #22001: GeoDjango (contrib.gis) does not create geometry columns in 1.7a2

https://code.djangoproject.com/ticket/22001

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.