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


yeah, this might be clearer if written as ActiveRecord query methods. It should be fairly easy to translate since each line of the sql will have a corresponding query method so it'd be like:
````
  ScriptLevel.joins("...").where("...").order("..").first
````
 (joins, order, where, first)

Should be a fairly easy change so don't worry about the upcoming student progress data model changes, might as well do it now if this is something we'll want in the "new" world too.