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)

Just me being mean, I see the opportunity for this being a new file you introduced. Can we have class contents line up in the following order? Maybe you can make into regions so that it's clean:

1. Dependency and generic properties
2. Public/internal class methods
3. Event handler methods
4. Private helper methods

If I'm not asking too much, I thought that makes code looks nice.