Scenario sets

To be reviewed commit by commit

Linked to https://www.agileplannerapp.com/boards/105200/cards/6053, to enable parsing scenarios in Smartdown, and exposing them as part of the Api::Flow object. 
It looks like we're using `-` lists to denote questions/answer pairs? 

We discussed in the future supporting more kinds of assertations than "am i on this outcome?", eg, page has text of "blah". At the moment we infer that the [last item](https://github.com/alphagov/smartdown/pull/72/files#diff-238bc9364d692d33c83fa0bfc77e3c5dR27) of a scenario, but it could be one of many assertation types, i'm thinking along the lines of:

```
#User has not trained with lions but can run fast
- question_1: lion
- trained_for_lions: no
- how_fast: fast
outcome: outcome_can_outrun_a_lion
has text: lion
```
Then we could map `outcome` as a kind of assertation, and add new ones if needed.

This all depends how backwards compatible we want to keep the scenario format. I don't think it's a huge thing, and could be a major version when we need it, but it's worth discussing now. What do you think?