introduce dstates_free to cache freed DStates for future reuse.

inspired by Russ Cox