Blockly nested loops

@BrettASwift This isn't ready to go in, but it's what I have going for fixing programs with nested loops. The problem is the block ids aren't being preserved correctly; either it skips some blocks or assigns some duplicate ids.

I'll continue to work on this today.