* change mask padding to a float var
* crossed wire
* this is less braeaking
* better comments
* change main mask signature duh
* fix tests to be better, do more
* more tests
An offset and length representation of windows avoids unnecessary
additions and subtractions that can lead to loss of precision.
A consequence is that we can no longer assert equality between
instances of Window and range tuples because Window no longer
subclasses tuple.
Rasterio is now ready for floating point windows.