org-attach.el: Check whether git is installed

* org-attach.el (vc-git): Require.
(org-attach-commit): Check whether git is installed.

Thanks to Jonathan Leech-Pepin for reporting this.
Merge branch 'maint'
Move `org-comment-dwim' in an appropriate section

* lisp/org.el (org-comment-dwim): Move function into "comment" related
  part of the library.
ob-exp: Fix duplicate evaluation with :wrap src

* lisp/ob-exp.el (org-babel-exp-process-buffer): Fix duplicate
  evaluation with :wrap src.
(org-babel-exp-non-block-elements): Removed function.
* testing/lisp/test-ob-lob.el (test-ob-lob/export-lob-lines): Fix test.
Merge branch 'maint'

Conflicts:
	lisp/ob-exp.el
this test should pass with the current code
Fix bug when using both electric-pair-mode and delete-selection-mode

* org.el (org-self-insert-command)
(orgtbl-self-insert-command): Change the value of the
`delete-selection' property to allow other commands like
`electric-pair-will-use-region' to be run before deletion.

Thanks to Harald Hanche-Olsen for reporting this.
Merge branch 'maint'
Documentation fixes.

* contrib/lisp/org-mac-link.el (org-mac-grab-Chrome-app-p): Fix docstring.

Patch by Daniil Frumin
exercise inclusion of noweb expansions in caches
expanded noweb references when calculating hashes

The bulk of the new code in org-babel-sha1-hash is borrowed from
org-babel-expand-src-block.

* lisp/ob-core.el (org-babel-sha1-hash): Expanded noweb references
  when calculating hashes.
fix bug introduced by e6a6fed

* lisp/ob-core.el (org-babel-sha1-hash): Don't reference non-existent
  params variable.
don't change code block body during sha1 hashing

* lisp/ob-core.el (org-babel-sha1-hash): Don't change code block body
  during sha1 hashing.
need to turn on noweb expansion in test
org-element: Fix holes in cache

* lisp/org-element.el (org-element--cache-stable-types): New variable.
(org-element--cache-sync): Do not store elements with missing parents
in cache.

The bug was introduced in 71c8474ae976b2d05094dcb39849dc65523c22e4.
Parsing doesn't always start from beginning of section, which means
that missing parents aren't always repaired while moving to the
current element.  Therefore, we need to remove any element from cache
with an invalid parent property.
org-element: Small change to cache optimization

* lisp/org-element.el (org-element-at-point): Simplify opportunistic
  shortcut by looking only for blank lines and headlines or
  inlinetasks.  Since regexp is simpler, we can afford to make more
  searches.
Revert "change default sh code block shell to bash"

This reverts commit 1f498c93f297cf39f9afc609433eb764c1480f9e.
multiple code block types for multiple shells

* lisp/ob-sh.el (org-babel-sh-command): Now set from
  `shell-file-name'.
  (org-babel-shell-names): List of specific shells known to Org mode
  shell code blocks.
  (org-babel-execute:shell): New generic shell execution function.
rename ob-sh to ob-shell
finish rename (split up for git)