Allow custom markdown processors

Requires that the custom markdown processor be a constant defined within `Jekyll::Converters::Markdown`. Example:

If I want to add theoretical, biblical, mystical HTML Pipeline to my site as a custom processor, I define a converter plugin with `#initialize` and `#convert` defined, perhaps something like this:

```ruby
require 'jekyll'
require 'html/pipeline'

class Jekyll::Converters::Markdown::HTMLPipeline
  def initialize(config)
    # You can do other fancy things with the config here,
    # but for now we'll just save it for later.
    @config = config
  end

  def convert(content)
    HTML::Pipeline.new(content).to_html(@config["html_pipeline_options"])
  end
end
```

Then in my `_config.yml`, I define the class I just created as my `markdown`:

```yaml
markdown: HTMLPipeline
```

Run your Jekyll build, et voilà!

If you're writing your own markdown processor and are not sure where to start despite my above example, take a look at the [`KramdownParser`](https://github.com/jekyll/jekyll/blob/master/lib/jekyll/converters/markdown/kramdown_parser.rb) class, a living, breathing, sweating markdown parser.

-----

Props to @envygeeks and @gjtorikian. Let's make it happen!

- [x] Code
- [x] Tests
- [x] Documentation

Supersedes #1213, #1871. Closes #1871.