WIP: Introduce Workflow API and make Peer API use it

The idea is that the OpenAssessmentBlock will create a submission, and then create an assessment workflow initialized with that submission. That `workflow_uuid` is stored in the user state of the block, and is used to get status. The peer assessment app can access the internals of the workflow app, and peer makes all its assessments with a foreign key to the `AssessmentWorkflow`, so it's all hanging off one central thing.