refactored WhenEffect into thread local History
refactored History as purgeable event list
fixed givenTry/givenTimes to throw TestoryException