more explanation of abstract types

Several points concerning abstract types eluded me when I first read the manual; I have written additional paragraphs to elucidate these points.
Document the breaking changes to PriorityQueue
Fix #7854

- label `comprehensions`
- add cross-reference in section about scoping in for loops and
  comprehensions
changed infix to prefix documentation to comply with reST
Merge pull request #7870 from StephenVavasis/patch-2

more explanation of abstract types
Fix some doc typos
Fixup #7870

- Clean up line breaks
- Add appropriate cross-references instead of "below" and "later"
  (such labels are essentially meaningless in hypertext)
- Minor wording tweaks (avoid using 'trivial' as synonym for 'simple',
  replace 'Julia looks for' by 'dispatcher chooses')
Check for valid arguments in Hermitian eigensolver when eigenvalues are reqested within an interval
Check arguments for subset of eigenvalues in the wrapper for xsyevr. This reverts 8e3b176b255c694964974cff766fb1f51b0eabca in favor of making the check in the LAPACK wrapper.
Check arguments in wrapper for xheevr. Add tests for errors reported in #8057 and #8058
Fix small spelling errors
Fix for compatibility with LLVM trunk changes using unique_ptr.
Also avoid gratuitous copy of EngineBuilder object.
Merge pull request #8060 from ArchRobison/adr/llvm36

Fix for compatibility with LLVM trunk changes that use unique_ptr<Module>