Test enhancements: stop loops in lambdas when assertion fails.
Test enhancements: stop loops in lambdas when assertion fails.

In the case of inner functions failing assertion tests in an outer loop
the assertion is logged and return the inner function,
so the outer function is never stopped even if it's an ASSERT_*
We now use a variant of the assertion macros which, collaborating
with the function caller, will throw the assertion information and
the exception will be catch to be logged, the message containing the
problem line source info.

Also made sure that the worker thread used in the tests is joined
correctly even in case of exception failure.

Change-Id: I5d81311e90294ff893705c74e1d157582bbf6445
Reviewed-on: http://gerrit.aldebaran.lan/75502
Reviewed-by: vpaleologue <cb19838a79eb484e12a6960acfbf7c16dfdb80d9@aldebaran-robotics.com>
Reviewed-by: jlamotte <70353e7b0c7d18b7fc75605daf0ccba69fcd3222@aldebaran.com>
Tested-by: jlamotte <70353e7b0c7d18b7fc75605daf0ccba69fcd3222@aldebaran.com>

aldebaran/libqi,aldebaran/libqi,aldebaran/libqi