general case adding when_run block

We want a top level block similar to when_run in calc, but it will look different

I general cased and renamed the insertWhenRun function to do this.

I also changed our config option to be a block type instead of a boolean.

This is what it looks like
![image](https://cloud.githubusercontent.com/assets/1767466/4868148/ba374eaa-613c-11e4-8da1-a5981dcda203.png)

what is this going to do if a different block starting with "functional" exists in the workspace, which doesn't have an output? because I'm about to add some of those to playlab.