Create a GFM (Github Flavored Markdown) parser

As a first step, it supports "fenced code blocks" delimited by three or more
backticks.

I am aware that this has been discussed in #15, #31, #53, and #64, and that the general concensus is that using tildes is a more standard and portable approach.

However in #53 it is also hinted that a pull request for a separate parser for this specific variety of Markdown might be accepted. And since the popularity of GFM is not decreasing, I would also argue it's a very useful feature to have.

This PR adds a `GFM` parser, including tests and docs.

~~~ruby
Kramdown::Document.new(text, :input => 'GFM')
~~~

I am testing the water with this PR, to see what the current sentiments are regarding GFM. The parser currently only implements a single extra feature, but if this is deemed acceptable then at least it creates a place to expand GFM conformance. I'll be happy to respond to remarks as to make this worthy of merging.