Added RasterSource/GDALBand GDAL objects

Based on Daniel Wiesmann's raster branch. Refs #23804.
Right, I think the only benefit is as a global policy to avoid any ambiguity about differing behavior on Python 2 and 3. We've been bitten by differences before. See also https://github.com/django/django/pull/3506.