Fix untested contract generation code.

Closes PR 13449.
adjust the package installation menu item in drracket to use mrlib/terminal
Add an IP address library

The library currently lives in a private subfolder so
that the interface can still be changed. The idea is to
eventually make it a top-level `net` library once it is
more mature.
Use net/private/ip in net/dns

This simplifies the code by outsourcing IP
address functionality to net/private/ip.
added with-eval-preserve-source-locations to scribble/eval

Makes it possible to show examples of redex term->pict, etc.
added unstable/redex with useful typesetting (rewriter) helpers
Make IP addresses immutable
Fix equality check
Refine contract check
Fix ipv4 check on addresses with a leading 0
Have Optimization Coach report unsound float division missed optimizations.
Use locations from typed identifiers for type-generated contracts.
Make TR-generated identifiers have the same name as original identifiers.

Makes error messages nicer, and makes it easier to correlate with source code.
Default implementations are only reached in the absence of method tables.
Adjust type for `dns-get-address`
Fix the returned type of `dns-get-mail-exchanger`.
Redex: fix term-let/#:lang keyword interaction

Account for the fact that define-language bindings may get
shadowed by term-let when using the same identifier as the language.
adjust dependencies to allow mrlib/terminal to use the framework

Not sure if this is the right fix, but hopefully it will allow
the build to happen while we debate the right fix.
Redex: pass language id through for term errors
Misc improvements to `net/dns' and `net/private/ip'.

* Some racketisms.

* Use explicit `in-list' etc in for loops.

* Remove some redundant requires from `net/dns'.

* Move all tests to `tests/net', including a new `tests/net/ip'.  In the
  future there's a plan to have things like stripped zos etc for
  distribution, but we're not there yet, and the net collection is
  already organized nicely so this also makes it more uniform.

* Include the dns tests in the main test file.