Reworked Code block editor using user control to fix port alignment and watermark issues

This submission fixes the following issues in porting the existing code block node to the new Avalon based Editor:

Port height and line height in text editor mismatch – AvalonEdit does not provide a way to control line heights
Watermark was not working
Borders around new editor UI were not visible
The above issues are resolved using a new approach - custom (UserControl) control container around AvalonEdit UI. See files:
1. CodeBlockEditor.xaml
2. CodeBlockEditor.xaml.cs

Note: This PR includes the implementation for basic syntax highlighting as well.

Pending tasks:
- Run UI automation tests on the new CBN editor after these changes and fix regressions if any
- Fix existing bugs with misalignment of input ports when there are line spaces in the text

@Benglin  please review

Snapshot:
![image](https://cloud.githubusercontent.com/assets/5710686/4182383/87f2fff4-372d-11e4-9944-3a0de6df9b89.png)

I was imagining we are creating the binding for ```tb``` not ```cbe```? Is this expected change? If so perhaps we don't need the additional ```tb``` above, we can do ```cbe.InternalEditor.Focus()``` below instead of having another local variable way before its usage.