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).
That would probably also work.  The benefit to this approach is that we can validate stuff both before and after clicking run if we want (i.e. validate that a sprite starts with image foo, and then is image bar after a click).  I suppose I could also have two functions (one for before and one for after).