furnace.db: db-persistence needs a dispose word that delegates to its po...

Here is another file descriptor leak patch. This one was a little trickier to fix because db-persistence needed to be a disposable and only used inside `with-disposal` blocks. So the unit tests had to be restructured a bit to accomodate that. There's probably more test suites that leak in the same way. Im finding a bunch of them using lsof.