Merge latest quickbook changes.

Restructures the code and tweaks docinfo. generation.
Merge quickbook from trunk.
Merge quickbook from trunk.
Merge some more documentation fixes.
Merge quickbook from trunk.

Left docs out of this merge, I want to do a little work on them.

- Add 'lang' element to docinfo.
- Improved anchor implementation. Especially for using an anchor before a
  section or heading.
- Reorganize the grammar, there's now a single main grammar. Elements are added
  separately using the Nabialek trick.
- Fixed some more issues where lines containing comments were treated as blank
  lines.
- Introduce a spirit rule for scoped actions when parsing. Could do with some
  improvement, but works okay.
- Allow import, include and xinclude in conditional phrases. Will allow more
  block elements in a future version.
- Use filesystem 3. Remove cygwin support.
Merge quickbook from trunk.

- Use a single symbol table for all elements.
- Fix filesystem use on windows. Fixes #5055.
Merge xinclude fix for windows.
Merge quickbook documentation changes.
Merge quickbook workaround for g++ 4.4 optimization bug.
Quickbook: merge quickbook 1.5.5
Quickbook: merge to release.

Includes:

- Detemplate syntax highlighter.
- Allow escaped markup in comments in highlighter.
- Remove whitespace hat was inserted after anchors.
- Use fs::path in a couple more places.
- Handle blocks inside phrases better (can happen with templates).
Quickbook: Don't match double marks in simple markup.
Quickbook: remove escape character support from simple markup.

Authorized by Beman Dawes.
Quickbook: Merge documentation fix.

Authorized by Beman.
Quickbook: XML encode escaped punctuation.
Quickbook: Merge from trunk.

- Add ids to more elements.
- Try to avoid generating duplicate ids.
- Simplify the grammar a little to avoid what I assume are optimization bugs in
  older versions of gcc.
Quickbook: Merge from trunk.

Improved id generation, and some fixes for 'pass thru' comments.
Quickbook: Merge from trunk.
Quickbook: Merge from trunk.

- Qualify footnote and callout ids.
- Close open sections at end of document.
- New markup for anchors in headers.
- Clean up some whitespace in generated xml.
- Fix double addition of anchor ids.
- A couple of doc changes from Beman.
Merge to release several changes for 1.48.