[#1189] Fix runDeferred.

Problem description
===================

runDeferred does not recognize that it is not called with a deferred and it also goes into an infinite loop. Timeout is not working.


Why we got into this (5 whys)
=============================

Bad code without tests.


Changes description
===================

runDeferred should be now fixed. I added the required tests.

I removed assertIsException as we no longer use it... we specialized method assertExceptionID


How to try and test the changes
===============================

reviewers @alibotean 

Nothing special here.
I have already published chevah-empirical-0.10.0.tar.gz and you can try to use it in your latest code.