So, we do something like this:

```
state.finishing = true;
state.emit('finish');
state.finished = true;
```

I could have sworn it was relevant at some point, but now it seems like it probably is not.  The only case where we look at finished, but not finishing, is in Writable.end(), and I think that's probably just a bug (though it never gets hit, since `ending` gets set long before `finishing`).

Will clean up Writable in another bit of work.