TestSuite: ability to compare non-copyable and non-movable types.

There is actually no need to copy anything anywhere. Everything is done
inside Tester::compareWith() function, which holds references to the
input values for whole lifetime of the Comparator object.

Thanks to Chris Chambers (@chris-chambers) for initial idea.