Support reading and writing a subset of a band
Properly handle layer creation options when no options are passed

The previous version could cause segfaults
Gdal.Driver.get_by_name has an optional return type now
Add basic .gitignore
First few GDAL algorithm additions