Asking, Answering, Editing

All in one PR :-)

The main commands are and `sx-ask` (bound to `a` in question list),
`sx-edit` and `sx-answer` (bound to `e` and `a` in question-mode).

They are written so that they can be invoked interactively and called
non-interactively, so it will be easy to have asking and answering
functionality associated to other places.

There's also a new major-mode: `sx-compose-mode`.
All 3 of those commands create a new buffer with that mode. 
Hitting `C-c C-c` in this buffer sends the content.
Hittinh `C-c C-k` kills the buffer.

The buffer is named so that each question/answer has a unique buffer
associated to it. So if you start composing an answer (or an edit), go
do something else, and then try to answer the same question (or edit
the same thing) again, `sx` will let you know you already have a draft
open.
Composing new questions doesn't follow this. Every new question is a
new draft.

For one, `:type` makes a lot of sense here -- I can see where it would prove useful. I think `:question-read-p` would make more sense abstracted into a function, something like
```lisp
(defun sx-?-ensure-question-read ()
  (let ((q (sx--data-here :type 'question)))
    (unless (and q (sx-question--read-p q))
      (user-error "...")))
```