Cleanup: Minor CodeBlockNode restructuring

This pull request is part of my general desire to clean up ```CodeBlockNode``` and codes surrounding it. It includes the following changes:

- Began to gather utility methods in ```CodeBlockUtils``` class 
- Added 8 test cases to verify new utility methods
- Tweaked CodeBlockNodeModel to use the new ```CodeBlockUtils``` class