teardown decorators immediately before node detach

This fixes #1483 - decorator `teardown` methods are called *after* outro transitions have completed (previously, they were called immediately, which meant undecorated nodes hanging around in the DOM for the duration of transitions)