org-element: Fix cache

* lisp/org-element.el (org-element--cache-after-change): Preserve
  match data.

Thanks to Matt Lundin for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/87871
Fix speedkeys to move subtrees up and down

* lisp/org.el (org-speed-commands-default): Bind "U" and "D" to
`org-metaup' and `org-metadown'.

Org speed keys were not updated to reflect the recent changes to
org-shiftmetaup and org-shiftmetadown.  As a result the default
bindings for speedkeys "U" and "D" were destructive, since they moved
only single lines.  Binding them to org-metaup and org-metadown fixes
the problem.

Thanks to Marco Wahl for reporting the problem:
http://permalink.gmane.org/gmane.emacs.orgmode/87873
ob-shell: stratify shell variable quoting

* lisp/ob-shell.el: Remove unused defcustom
  `org-babel-sh-var-quote-fmt'.
  (org-babel-variable-assignments:bash_array):
  (org-babel-variable-assignments:bash_assoc): Remove superfluous
  `mapcar' and double quotes around parameters.
  (org-babel-sh-var-to-sh): Single-quote the whole string and escape
  all single quotes in the original string.
ob-shell: honor the specified shell for :session

* lisp/ob-shell.el: Remove defcustom `org-babel-sh-command' and
  replace with `shell-file-name' throughout.
  (org-babel-variable-assignments:sh): Make check for bash work in more
  cases.

The original code and the patched version rely on the shell being
available via PATH.  Instead the shell name should be mapped to the
appropriate executable via an alist and invoked via an absolute
filename.  For security reasons the permissible shells should probably
be taken from /etc/shells or equivalent by default.  Instead of
checking for bash, the same or another alist could provide the
information of whether or not the shell supports arrays (which indeed
were introduced by ksh originally).
org-element: Fix thinko

* lisp/org-element.el (org-element--cache-key-less-p): Fix thinko.
allow square brackets in emphasis post-match

* lisp/org.el (org-emphasis-regexp-components): Allow square brackets
  in the emphasis post match.
inhibit <p> wraps on a whole-list basis

* lisp/ox-html.el (org-html-paragraph): Extend the special case of
  inhibiting <p> wrappers to only perform such inhibition when *every*
  element of the list is a single paragraph long.  Otherwise unsightly
  spacing results.
Fix `org-drag-element-backward'

* lisp/org.el (org-drag-element-backward): Correcly drag elements in
  a drawer or a block.
* testing/lisp/test-org.el (test-org/drag-element-backward): Add test.
drop cite options for non-latex backends

These options break citation handling for these other backends, so we
should just drop them.

* contrib/lisp/ox-bibtex.el (org-bibtex-merge-contiguous-citations):
  Drop citation options for HTML and ASCII export.
rm dependency of ox-bibtex on org-bibtex-extras

* contrib/lisp/org-bibtex-extras.el: Remove functions to find
  citations, moved into ox-bibtex.

* contrib/lisp/ox-bibtex.el: Add functionality to follow cite links.
org-element: Small cache fix

* lisp/org-element.el (org-element--cache-before-change): Ignore case
  sensitivity when looking for a modified sensitive line.
org-element: Refactoring

* lisp/org-element.el (org-element--cache-sensitive-re): New variable
(org-element--cache-opening-line, org-element--cache-closing-line):
Removed variables.
(org-element--cache-before-change, org-element--cache-after-change):
Refactoring.  Also simplify process.
org-element: More refactoring

* lisp/org-element.el (org-element--cache-generate-key): Refactor key
  computation.
(org-element--cache-default-key): Remove variable.
org-element: Fix typo

* lisp/org-element.el (org-element--cache-generate-key): Fix typo in
  docstring.
ox-ascii: Fix tables with a width cookie

* lisp/ox-ascii.el (org-ascii--table-cell-width): Correctly export
  tables with width cookies.
Merge branch 'maint'
org-element: Use full range of integers for cache keys

* lisp/org-element.el (org-element--cache-generate-key): Allow
  negative numbers in keys.  Small refactoring.
org-element: Small refactoring

* lisp/org-element.el (org-element--cache-generate-key): Small
  refactoring.
org-element: Fix parsing path starting with ~

* lisp/org-element.el (org-element-link-parser): Do not prepend "//"
  to paths starting with "~".

Since b1dcd0fb0bec6b523c900bc1304fbe834c21697d, link parser doesn't
expand file names anymore. We need to prevent it from "fixing" paths
starting with "~", as it can cause trouble to some
exporters (e.g. latex).
org-element: Fix cache corruption when altering a drawer

* lisp/org-element.el (org-element--cache-submit-request): Correctly
  update cache when changes alter the contents of a greater
  element (e.g. a property drawer).

Thanks to Alan Schmitt for reporting it.
http://permalink.gmane.org/gmane.emacs.orgmode/88086