Fix issues with Code Block Node out-ports with arrays

##### Background
This pull request is mainly aimed at fixing the following defect (tracked internally):

[MAGN-1045 Output slot missing when modifying array element within same CBN](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-1045)

Instead of only have an output port for the final statement, the ```CodeBlockNode``` now displays an output port for the array declaration statement (the first statement) itself:

![code-block-multiple-outputs](https://cloud.githubusercontent.com/assets/5086849/2664179/fa6d0896-c071-11e3-9c7b-c8954625f3de.png)

Note that the bubble preview value is still showing the value of the entire array due to a known issue tracked separately.

Changes:
- Implemented ```GraphToDSCompiler.ParseParam``` container class
- Refactored ```GraphToDSCompiler.GraphUtilities.Parse``` method to use ```ParseParam``` class
- Refactored ```CodeBlockNodeModel.ProcessCode``` method
- Refactored ```CodeBlockNodeModel.SetPreviewVariable``` method

##### Unit testing
- A new test case ```Defect_MAGN_1045``` have been added to ensure this fix is not broken.
- There were various unit test cases written for ```CodeBlockNode``` that directly or indirectly exercise the changes in this pull request.