vips.py: Proper band sizes, copy buffers in ReadAsArray to prevent corruption

The band's X and Y size was not referring to the dataset, so if you got a
handle on the band and then scaled the dataset, the X and Y sizes were not
changed and were thus wrong. Always report the X and Y sizes from the dataset.

There was a bug in the band and dataset ReadAsArray methods where if you tried
to read from the buffer, the values could be modified because the ndarray
returned was referring to the direct buffer in memory. Copying the buffer
before returning the ndarray is the correct thing to do.
Automated merge with https://ecometrica.kilnhg.com/Code/Public/group/gdal2mbtiles
Remove scripts/gdal2mbtiles as the entry point is defined by setup.py

Also, configure logging by default.
Moved colorized() from TmsPyramid to VipsDataset where it belongs.
test_scripts.py: Use gdal2mbtiles/main.py for testing script execution

Since we removed scripts/gdal2mbtiles, we need something to run
against before we install the console entry point.
setup.py: Make setup.py test work. Obsoletes test.py.
renderers.py: Encode the output file names.

Vips doesn't like to receive unicode strings, so we encode the temporary file
names when rendering the tiles.
vips.py: Verifying width and height of the upsampled image against an epsilon

We might have to deal with floating point errors when computing the new
width and height of the upsampled image. Using an epsilon makes sure that we're
within an acceptable integer range.

After verifying that, we round the resulting width and height, and int() them
before continuing normally.
Version 1.1.0
Added tag version-1.1.0 for changeset fcf49aeb100b