fix the target display

show the target when the shown-target is non-nil (not the target).
pass the message structure to the mark actions

This allows to re-tag a message in a mark action.

Two examples of what one can do with this stuff:

1. G-mail archiving:
(archive
   :char       "a"
   :prompt     "archive"
   :show-target (lambda (target) "archive")
   :action      (lambda (docid msg target)
                  (mu4e~proc-move docid nil "-N")
                  (mu4e-action-retag-message msg "-\\Inbox")))

2. Tagging:
(tag
  :char       "g"
  :prompt     "gtag"
  :ask-target (lambda () (read-string "What tag do you want to add?"))
  :show-target (lambda (target) target)
  :action      (lambda (docid msg target)
                 (mu4e~proc-move docid nil "-N")
                 (mu4e-action-retag-message msg (concat "+" target))))