CodeBlock now holds syntax identifier information.

The syntax identifier that follows the ``` ticks is extracted and rendered in the <code> tag as a class name prefixed with 'lang'. e.g. 'lang-cs'.
The 'lang' prefix was only inferred from the github flavor convention so that it can be used in a post processor to perform code formatting. e.g. using ColorCode.
Read syntax per codeblock

- Fix issue where the syntax was read globally from first code block in
the document
- Add more tests to verify behavior