org-element: Allow multiple caption keywords

* lisp/org-element.el (org-element-multiple-keywords): Allow multiple
  caption keywords.
* contrib/lisp/org-export.el (org-export-get-caption): New function.
* testing/lisp/test-org-element.el: Add tests.
* testing/lisp/test-org-export.el: Add tests.
org-e-ascii/org-e-latex/org-e-md: Use new caption tool

* contrib/lisp/org-e-ascii.el (org-e-ascii--build-caption,
  org-e-ascii--list-listings, org-e-ascii--list-tables): Use new
  caption tool.
* contrib/lisp/org-e-latex.el (org-e-latex--caption/label-string): New
  signature.  Use new caption tool.
(org-e-latex-link--inline-image, org-e-latex-src-block,
org-e-latex-table--org-table): Apply signature change.
* contrib/lisp/org-md.el (org-md-link): Use new caption tool.
org-e-groff/org-e-man: Changes to caption handling

* contrib/lisp/org-e-groff.el (org-e-groff--caption/label-string):
  Change signature.
(org-e-groff-link--inline-image, org-e-groff-src-block,
org-e-groff-table--org-table): Use `org-export-read-attribute'. Apply
signature change.
* contrib/lisp/org-e-man.el (org-e-man--caption/label-string): Change
  signature.
(org-e-man-src-block): Remove unused caption code.
(org-e-man-table--org-table): Use `org-export-read-attribute'. Apply
signature change.
org-e-html/org-e-odt: Changes to caption handling

* contrib/lisp/org-e-html.el (org-e-html--caption/label-string,
  org-e-html--wrap-label, org-e-html--find-verb-separator): Remove
  functions.
(org-e-html-center-block, org-e-html-drawer, org-e-html-dynamic-block,
org-e-html-fixed-width, org-e-html-inline-src-block,
org-e-html-inlinetask, org-e-html-latex-environment,
org-e-html-plain-list, org-e-html-quote-block,
org-e-html-special-block, org-e-html-verse-block): Apply functions
removal.
(org-e-html-example-block, org-e-html-src-block): Allow textarea. Use
new caption scheme.
(org-e-html-horizontal-rule): Cleanup.
(org-e-html-link--inline-image, org-e-html-table): Use new caption
scheme.
* contrib/lisp/org-e-odt.el (org-e-odt--wrap-label,
  org-e-odt--caption/label-string): Remove functions.
(org-e-odt-format-label): Use new caption scheme.
(org-e-odt-center-block, org-e-odt-drawer, org-e-odt-dynamic-block,
org-e-odt-example-block, org-e-odt-fixed-width,
org-e-odt-horizontal-rule, org-e-odt-inlinetask,
org-e-odt-latex-environment, org-e-odt-plain-list,
org-e-odt-quote-block, org-e-odt-special-block,
org-e-odt-verse-block): Apply functions removal.

In e-html export, textareas are now possible with the following
attribute:

  #+ATTR_HTML: :textarea t :width 80 :height 10

:width and :height keywords are optional.
org-e-latex: Ignore empty captions in lstlisting environments

* contrib/lisp/org-e-latex.el (org-e-latex-src-block): Ignore empty
  captions in lstlisting environments.
ob-exp: Preserve affiliated keywords when replacing a code block

* lisp/ob-exp.el (org-export-blocks-preprocess): Preserve affiliated
  keywords when replacing a code block.
org-export: Update code comments
fix dvipng latex export with Transparent background

* org.el (org-create-formula-image-with-dvipng): Fixes a bug
introduced in 149cc04782651e74764eb3188f6a6f178fe25f64 that made it
fail with no :foreground and :background attributes set, due to bad
handling of "Transparent" color.
OrgOdtStyles.xml: Typeset numbered formula differently

* etc/styles/OrgOdtStyles.xml (OrgFormula): New paragraph style.
(OrgFormulaCaptionFrame): Modified.
org-e-odt.el: Pre-process LaTeX fragments

Handle enumeration more robustly.  Numbered OpenDocument formula no
longer uses a table for typesetting of formula and it's number.

Also some renaming and moving around.
org-e-odt.el: Fix earlier commit

Handle the case when latex fragment/environment fails to yield an
image or formula file.
Fix the ltxpng path for HTML and ODT exporters

* org-html.el (org-export-html-preprocess)
(org-export-html-format-image): Use
`org-latex-preview-ltxpng-directory'.

* org-odt.el (org-export-odt-do-preprocess-latex-fragments):
Ditto.

Commit 8474115b20ff2ac907d62f30a0f543064318f47d breaks LaTeX
image exports as HTML and ODT.  This fixes it.
Merge branch 'maint'
org-export: Fix collision between old export menu and new one

* contrib/lisp/org-export.el (org-export-dispatch-ui): Do not use same
  buffer name as previous export dispatcher.  Also make sure the
  temporary buffer is deleted once the export is done.