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?
I don't like going overboard with OO principles but I think it makes sense to make an `Editor` interface here that classes have to implement.