Markdown support

+ Markdown support
+ Prompt when unsaved changes

While this works, I'm not sure if this is the best approach. It might be better to stick all the configuration and logic inside `base.php`, as it'd be more likely that someone would implement a new `provider/*` than a new editor.

Thoughts?
can we make this not global but have a function to get the available editors or something like that?