[Finishes #83415346] Required blocks inside functions

<img width="600" src="https://cloud.githubusercontent.com/assets/413693/5509272/28eb4c80-876b-11e4-8e65-fd22786d8a2d.png">
This is a departure from how top-level required blocks are specified.  When specifying a required block inside a function, the blocks are connected inside the function.  Required blocks are generated for each "statement", which is a block with a previous or next connection.

Defining top-level required blocks:
<img width="300" src="https://cloud.githubusercontent.com/assets/413693/5509317/8c9c91f8-876b-11e4-8ec0-deac14e03b53.png">

Defining required blocks inside functions:
<img width="400" src="https://cloud.githubusercontent.com/assets/413693/5509200/7abe8794-876a-11e4-88e1-2ccb1344ac17.png">