Correctly parse GFM style code blocks

Refs #55

The Github formatted markdown parser in kramdown supports backticks for fenced
code blocks, while the standard parser doesn't. Unfortunately, simply
switching to the GFM parser breaks some other rules that rely on header
detection.

My solution for this is to cherry pick the GFM code block parsing code and add
it to the regular kramdown parser, creating a custom 'markdownlint' parser.