cpp: test: Split pixelbuffer into multiple translation units

This instantiates the templated tests for one pixel type
per unit.  This is to work around travis failures due to
this file failing to build due to an internal compiler
error and/or memory problems on the build node.  The tests
run are unchanged.