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?
Also, I feel like this is more consistent with the current architecture of the app. :8ball: