reuse incremental dill files when possible (#1569)

We were already caching this but weren't actually using it on subsequent runs 🤦‍♂️ . I also optimized it a bit to only copy the dill file once inside `dispose` instead of updating it repeatedly whenever we see a larger file.

This takes our `test_api` test runs from ~9 seconds to ~4 seconds.

Related to https://github.com/dart-lang/test/issues/1567.
6 files changed