[hacky] Cache images of OpacityBuffers
* the cache remembers the previous grid and AffineTransform, which
  shouldn't change that often. The testing for grid equality is
  currently ridiculously hacky, but it works and commits are cheap:
  Gridderface is now faster, yay
Get rid of MutableGridProvider and let GridSettingMode provide grid
* the immutability is better, but still doubting if this is the "right"
  thing to do; may need to rethink exactly what a GridProvider *is*
  versus the grid itself