org-element: New `org-element-down' function

* contrib/lisp/org-element.el (org-element-down): New function.
* testing/lisp/test-org-element.el: Add test.
Merge branch 'master' into max-sticky-agenda
Final decisions about global/local for sticky agendas.

This is just an intermediate commit, to make sure that the comments
are all visible in the git history.

* lisp/org-agenda.el (org-agenda-local-vars): Final decisions about global/local
Clean up local variable stuff and document sticky agenda buffers

* lisp/org-agenda.el (org-agenda-local-vars): Clean up the variable list.
(org-agenda-get-restriction-and-command): Add a key for toggling
sticky agenda views.

* doc/org.texi (Agenda dispatcher): Document sticky agenda views
and the new key for them.
Silence the compiler about a dynamically scoped variable
org-export: Change source code handling API

* contrib/lisp/org-element.el (org-element-example-block-parser,
  org-element-src-block-parser): Add `:number-lines',
  `:preserve-indent, `:retain-labels', `:use-labels'  and
  `:label-fmt' properties.
* contrib/lisp/org-export.el (org-export-resolve-coderef,
  org-export-get-loc): Apply changes to src-block and example-block
  elements' properties.
(org-export-unravel-code, org-export-format-code,
org-export-format-code-default): New functions.
(org-export-handle-code): Removed function.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-example-block): Use new
  function.
(org-e-latex-src-block): Use new API.  Better handling of numbered
lines with special packages.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-example-block,
  org-e-ascii-src-block): Use new functions.
* testing/lisp/test-org-element.el: Add tests.
* testing/lisp/test-org-export.el: Add tests.
test-org-element: Fix a test about block switches
org-agenda-sticky: Make customizing it call `org-toggle-sticky-agenda'
Fix :set property of `org-agenda-sticky'

* lisp/org-agenda.el (org-toggle-sticky-agenda):
(org-agenda-sticky): Improve :set property.
org-export: Remove useless INFO argument from `org-export-unravel-code'

* contrib/lisp/org-export.el (org-export-unravel-code): Remove INFO
  argument.  Fix a bug preventing code references to be properly
  recognized.
(org-export-format-code-default): Apply signature change.
(org-export-resolve-coderef): Fix a bug preventing code references to
be properly recognized.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-src-block): Apply signature
  change.
* testing/lisp/test-org-export.el: Add tests.
Make auditioning of midi and pdf generations asynchronous, and add easy pdf generation.

* lisp/ob-lilypond.el: Make auditioning of midi and pdf asynchronous,
  and add easy pdf generation in the form of `ly-gen-pdf' variable.

* testing/lisp/test-ob-lilypond.el: Tests for above.
fix whitespace errors
Ensure correct order for empty result wrapping blocks.

* lisp/ob.el (org-babel-insert-result): Ensure correct order for empty
  result wrapping blocks.
Merge branch 'origin-maint'
apply :shebang and :padline to shell script execution

* lisp/ob-sh.el (org-babel-execute:sh): Pass all params to subroutine.
  (org-babel-sh-evaluate): Apply :shebang and :padline to shell script
  execution.
Add missing word to org-contacts y-or-n-p question

* org-contacts.el (org-contacts-check-mail-address): Add missing word
to y-or-n-p question.
Merge branch 'maint'
Remove spurious quote in customization form choice

* org-attach.el (org-attach-store-link-p): Remove spurious quote in
customization form choice.

Glitch discovered and fix suggested by Henning Weiss in
<CAKq33udFSsBP0egVrgfjcBnou+PhKtyYaGBn0SfMicp42h0=kw@mail.gmail.com>>.
Merge branch 'maint'
org-e-html: Use new source code handling API