unittest: new MEMCOMPARE macro

The macro calls the Compare constructor with the Mem tag type. The
constructor then uses std::memcmp to compare the memory representation
of the arguments. On failure it prints the complete memory contents in
hex.

closes #691

Signed-off-by: Matthias Kretz <kretz@kde.org>
traits: new has_equality_operator trait

Signed-off-by: Matthias Kretz <kretz@kde.org>
unittest: have COMPARE fall back to MEMCOMPARE automatically

If COMPARE fails to find the necessary operator== to do its normal work
it now silently forwards the compare to MEMCOMPARE. This should make it
easier to get started with a new Vc implementation.

Also MEMCOMPARE now allows to use two different types, as long as their
sizeof is equal.

refs #691

Signed-off-by: Matthias Kretz <kretz@kde.org>
arithmetics test: use same type for reference

Set the reference value to the same type as the test value. This enables
the MEMCOMPARE fallback if operator== is not implemented/visible.

Signed-off-by: Matthias Kretz <kretz@kde.org>