Some more studio cleanup

A little more cleanup as I try to understand Studio code.

(1) We were setting some fields on Blockly.Blocks (which is otherwise composed entirely of actual blocks). I moved this to local variables.
(2) NthStartingSkin seems really awkward to me. Instead I created a list of startAvatars that is reordered according to firstSpriteIndex.
(3) We had a circular dependency (studio.js requires block.js requires studio.js), that I'm surprised browserify is okay with.  I removed block's dependency on studio by having studio set startAvatars (which will change per level).
Would this work if it were in a `runAfterClick` run immediately after the `BlocklyApps.runButtonClick()` call in the executor? Or does other stuff also need to run not triggered by the click?