Centralise logic about updating Test::Case result

@tooky I don't particularly like the interface (using a setter)
from the Result to the Test::CaseRunner. Can you think of a nicer
way to do it?

Also, I'm wondering whether it would be clearer to have one set of
Test::Result classes for Test::Step results, and another separate set
for modelling Test::Case Results. WDYT?