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?
might make more sense here to pass `$editor_name` directly like:
```
function getEditorByUser($username, $editor_name=null) {
    if (is_null($editor_name)) {
        $editor_name = getEditorNameByUser($username);
    }
    return getEditor($editor_name);
}
```