cpp: Workaround GCC 4.6 complex construction bug

This version does not default-initialise the imaginary part
correctly for templated types (i.e. Boost.Endian types).
Explicitly initialise the imaginary part in all tests.
Revert "travis: Install and use GCC 4.8"

This reverts commit 8c24e19331d3bb40af7708262742d0b606108b92.