Give the LPD8806 driver its own include guard.

Previously it was accidentally reusing the one for the MAX72xx driver due
to copy-paste clumsiness.
Add an adapter to treat a 1D pixel array as a 2D one.

It's pretty common to get a 1D strip of pixels and cut it up into strips
to make a 2D matrix. This adapter can then be used to make the 1D strip
look like a 2D matrix from a software standpoint too.

An abstract base type is provided which can be inherited (using the
curiously recurring template pattern) to provide a projection
implementation. Once such implementation is provided that represents
a strip that has been cut into a set of equal-length rows that all proceed
from left to right, assuming that index 0 on the LED strip is at the
top-left.