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.