Provide core support for workflow via a state machine
Refactor object_key logic to a real plugin. This deprecates the unique_key mixin