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


good call moving this out of the model -- if you have to pass a reference to the controller it probably doesn't belong to the model.

I'm kind of inclined to keep milestone_response and its helper methods together.  It is kind of annoying to have them in ApplicationController though -- maybe create a new helper that only has methods to do with responding to level activity? (the name of a helper does not have to match a controller or model -- you just have to explicitly include it where you want to use it).

So you could move milestone_response there and also the stuff you put in the new ScriptLevelHelper and ScriptHelper.