This adds the idea of a persistent worker tool as mentioned in #712 (closed) . These workers have the same lifetime as buckd, unless the worker inputs themselves change, which causes a restart. We use the RuleKey via InitializableFromDisk to decide when that needs to happen.