Fixed a defect where ports of code block not aligned

##### Background
This defect is meant to fix the following three defects (tracked internally):

* [MAGN-3110 In/out connectors not aligned with text in code block nodes #1463](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-3110)
* [MAGN-2601 output slots not aligned properly, if first line of CBN split into multiple lines](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-2601)
* [MAGN-3098 Output ports are not aligned with line](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-3098)

The fix now aligns output ports of a Code Block Node exactly to their corresponding statements, even when there are empty lines in between, or a longer line gets wrapped around to the next line.

![code-block-multiple-outputs-fixed](https://cloud.githubusercontent.com/assets/5086849/2775194/e0867e5c-cac2-11e3-8d9e-7481b9e79e6b.png)

##### Unit Tests
Since the main fix is introduced as ```CodeBlockUtils.MapLogicalToVisualLineIndices```, the following test cases have been added to test this fix with various scenarios (e.g. wrapped line, empty lines in between):

* ```TestMapLogicalToVisualLineIndices00```
* ```TestMapLogicalToVisualLineIndices01```
* ```TestMapLogicalToVisualLineIndices02```
* ```TestMapLogicalToVisualLineIndices03```
* ```TestMapLogicalToVisualLineIndices04```