Define the new capability interfaces, and test them.

The new design principle is to separate the in-memory storage of an image
(Bitmap2d) from the capability of displaying it. This allows greater
flexibility in how image data is buffered before being displayed; for
example, the PaletteBitmap2d class allows an in-memory bitmap using
indexed color that can then be backed by a true-color display, doing
the conversion on the fly using the palette during display update.