[WIP] fold on fenced code blocks

You probably don't want to merge this as-is but I thought I'd let you see what I'm doing.

I wanted to be able to fold fenced code blocks and that is what this allows you to do.

[vim-pandoc] lets you fold fenced code blocks but it does so using `foldmethod=syntax` which can get pretty slow.

[vim-pandoc]: https://github.com/vim-pandoc/vim-pandoc

Also I've required headers to be preceded by a blank line (as per the pandoc spec, but not the original markdown spec).