org, ox: move defsubst before first use

* lisp/ox.el (org-export-get-parent): Move definition of
  'org-export-get-parent' before first use.  Leave comment at original
  place of definition.

* lisp/org.el (org-uniquify): Move definition of 'org-uniquify' before
  first use.  Leave comment at original place of definition.
org-entities: forward declaration of org-toggle-pretty-entities and org-pretty-entities

* lisp/org-entities.el: Remove superfluous require of org-macs.
  Forward declare 'org-toggle-pretty-entities' and
  'org-pretty-entities'.
ob-C: lexical-let requires cl at compilation time

* lisp/ob-C.el: Require cl during compilation so that lexical-let is
  known.
ob-core:forward declare org-every

* lisp/ob-core.el (org-every): Forward declare 'org-every'.
ob-core, ob-exp, ob-haskell, ob-python: declarations for org-src-preserve-indentations

* lisp/ob-core.el: Add comment to forward declaration of
  'org-src-preserve-indentations'.
* lisp/ob-exp.el: Require org-src to import
  'org-src-preserve-indentations'.
* lisp/ob-haskell.el, lisp/ob-python.el: Remove superfluous forward
  declaration of 'org-src-preserve-indentations', since it gets
  imported by other requires.
Associate all defcustoms to options in back-end definitions

* lisp/ox-ascii.el:
* lisp/ox-beamer.el:
* lisp/ox-html.el:
* lisp/ox-latex.el:
* lisp/ox-man.el:
* lisp/ox-md.el:
* lisp/ox-odt.el:
* lisp/ox-org.el:
* lisp/ox-texinfo.el: All defcustoms are defined as options in the
  back-end.
* lisp/ox-icalendar.el (icalendar): Ditto.  Also rename :with-vtodo
  property to :icalendar-include-todo.

* doc/org.texi (Publishing options): Update back-end specific
  properties.  Remove @vindex entries so as not to clobber variables
  index.

This change allows to change default value for any defcustom on the
fly when publishing.  It also normalizes how to choose and name what
variables to define as back-end options.
ox-latex: Fix 7a956c3880bc0970b2f41ee06762a9ce98918086

* lisp/ox-latex.el (latex): Change property name.  It fixes
  7a956c3880bc0970b2f41ee06762a9ce98918086.
(org-latex-template): Use new property.

* doc/org.texi (Publishing options): Update documentation.  Also fix
  typo.
ox-latex: Fix again 7a956c3880bc0970b2f41ee06762a9ce98918086

* lisp/ox-latex.el (latex): Update property name.
* doc/org.texi (Publishing options): Update documentation.
org: add forward declarations

* lisp/org.el: Add forward declarations for a number of functions that
  the compiler otherwise warns about as potentially undefined at
  runtime.
org.texi: De-uglify some tables

* doc/org.texi (Publishing options): De-uglify tables with a proper
  column width definiton.
org.texi: Small documentation fix

* doc/org.texi (Publishing options): Remove reference to inexistent
  variable.  The associated property is misplaced, too.
Merge branch 'maint'

Conflicts:
	lisp/ob-core.el
	lisp/org.el
	lisp/ox.el
Merge branch 'maint'
Fix aa86e4bc

Thanks to Achim Gratz for pointing this.
Fix aa86e4bc again
org-agenda.el (org-agenda-finalize): Remove duplicate check for 'org-hd-marker

* org-agenda.el (org-agenda-finalize): Remove duplicate check
for 'org-hd-marker.
Merge branch 'maint'
org.el (org-shiftmetaup, org-shiftmetadown): Update behavior

* org.el (org-shiftmetaup, org-shiftmetadown): Don't move the
subtree or list item at point up or down, as this feature is
already accessible through `org-metaup' and `org-metadown'.
Update the docstrings to reflect the new behavior.
org.el (org-insert-heading): Don't insert an item when called with two universal prefix arguments

* org.el (org-insert-heading): Don't insert an item when
called with two universal prefix arguments.
Merge branch 'maint'