API access to scenario list

This duplicates a lot of code from the `show_scenario` view. Could these just be the same function, with the template conditionalized on a `GET` parameter, or something?