Support alternative code block syntax highlighting of pandoc

Pandoc provides a second possibility for code block syntax highlighting:

  ``` {#mycode .haskell .numberLines startFrom="100"}
  qsort []     = []
  ```
Improve code block highlighting

Support nested syntax rules described in pandoc documentation:

....
In addition to standard indented code blocks, Pandoc supports delimited
code blocks. These begin with a row of three or more tildes (~) or
backticks (`) and end with a row of tildes or backticks that must be at
least as long as the starting row.
....
Further improvement of nested syntay

Do not accept code blocks that mix tilde and backtick characters
(i.e. start with ~~~ and end with ~~~`~`~)
Merge remote-tracking branch 'embear/master' into embear-master