Support wider displays, e.g. multiple matrices in a row

This change fixes foreground drawing when using a larger display size, e.g. 16x64 or 32x128, which can be done by chaining several matrices.

This does not add support for taller displays, as the change is a tad bit more complicated, since it would require precise geometry configuration (is 64x128 four rows of 16x32 matrices or two rows of 32x32 matrices?)

I changed the way `MIN_BLOCK_PERIOD_TICKS` is computed rather than just updating `MIN_BLOCK_PERIOD_NS` in the harware configuration header because this makes the lib usage much simple: the user just needs to set a new `MATRIX_WIDTH` value and everything should work just fine.