AppTester doesn't tear down its app properly

When `.inputs` is used, we use the same app on a different `InteractionMachine` for each input, but we keep its event listeners bound to each `InteractionMachine` we dispose of. We need to add some tear down handling to remove these listeners at the end of each `InteractionMachine` run.