Skip unplugged in progression [WIP]

Skip unplugged script levels during "next level" progression

*Note: WIP because doesn't yet skip them during progress resume*

- Test existing HoC -> 20hour and post-script completion flow
- Pull script level success AJAX response controller code out of model and into smaller helpers and add tests
- Establish single points of truth for next script level progression logic
- Add helper for first level in script, skipping invalid script levels, next level after completed script

#### Small tweaks included

- Pull HoC finish URL out into a single point of truth helper
- Move top-level blockly run AJAX response data into a single hash


I think all scripts (including the ones with stages) order script_levels by chapter (in one dimension), so I think you can simplify this. Before depending on that you should probably verify that though, which you can do by doing something like:
````
Script.find(n).script_levels.collect(&:chapter)
````
and comparing that with the stage.position and script_level.position for every script on prod