relax check syntax's syntax-original? requirement

Allow macro writers to put an 'original-for-check-syntax
property on identifiers and, if it is there, don't
insist on syntax-original? holding, just draw arrows anyway
Refactor Redex so that it tells Check Syntax that non-terminal
references are binding/bound variables (beyond those appearing in the
define-language itself)

Specifically,

- change define-language (and friends) so they record binding and
  source location information for non-terminals in the identifier that
  names the language (and to expand to disappeared bindings);

- change rewrite-side-conditions/check-errs so that it accepts the
  language identifier (instead of a list of non-terminals) and returns
  one extra piece of syntax: that extra piece of syntax is just
  (void), but it has a bunch of disappeared uses on it that connect
  to the identifiers added to define-language;

- similarly, adjust (term ...) so that it puts disappeared uses for
  non-terminal references.
disable the extra information redex puts for check syntax

... because it results in programs that have different identifiers
with overlapping ranges in the editor, something that check syntax is
not yet prepared to deal with.
add file menu items to macro stepper frames
  closes PR 13698
added raco commands for check-requires, show-dependencies
fix problem with define-eh-alternative-set related to lazy-require
fix syntax error context
improve tests
fixed quasisyntax to work with prefab struct templates

Prefab struct templates have problems with unsyntax-splicing,
but so do vectors. See commented tests.
Fix re Robby
Fixing PR13729
add more explaination to #%expression
edito
another edito

closes PR 13734
misc improvements to generate-term

- there should no longer be an internal errors (hopefully)
  that is, all of the errors with the form should be caught
  and reported properly now
- several of the options in generate-term now generate less code
- the blue box portion of the documentation is now more precise
allow #:chaperone specification in struct/dc

related to PR 13734
fix tests

The test cases in question never failed for what appears to be
an amazing fluke. I broke these test in Jan of 2012 (commit 2afda360)
and they don't seem to have failed since then, due to luck with
the random number generator
make `scribble' (and `raco scribble') use a `doc' submodule when present
fix `module' non-simplification of syntax during expansion

This change affects the time required to `expand' a module.
add `configure-runtime' submodule support

A language can now introduce a `configure-runtime' submodule that
is `dynamic-require'd before the enclosing module.

This new submodule protocol provides a more general and
easier-to-understand way of configuring the run-time environment for
a module's language, as compared to the `module->language-info'
path (through a `get-info' function, via a 'configure-runtime value,
and finally loading the specified module).

The `module->language-info' path remains in place, and it is
checked after a `configure-runtime' submodule is run, since
that order is likely to be the most backward compatible.