Fixes #8 - defers adding a timeout listener if one is already specified.
Tidies up tests.