NormalizableLayer: Ensure proper default data ranges, even if dtype=int instead of numpy.int64
MinMaxSource: When data range is updated, emit the isDirty signal via a QTimer to ensure that it doesn't 'win' the race and get to the TileProvider before the tile data.
Fixes #418