Allow custom markdown processors

Props to @envygeeks and @gjtorikian. Let's make it happen!

Supersedes #1871.