Rename `read-intern-literal' to `datum-intern-literal'.
Interning is needed only in `read-syntax' or `datum->syntax' to
set up the invariants that the bytecode compiler needs for cross-module
optimization. When `read'ing numbers from a data file, meanwhile,
interning slows things down a lot and doesn't seem worthwhile.
This change saves a small amount of space in cross-reference files
and some space in loaded cross-reference information.
It also saves work converting strings to mutable on deserialize,
although the performance difference seems negligible.
The change allows `raco setup' to reach a fixed point under Windows
for "redex/examples/cont-mark-transform".
I'm more and more convinced that `normal-case-path' is never
a good idea. In some cases, maybe it's good to recognize a
few extra equivalences, but it works badly when paths are taken
from many sources and are not consistently normalized. It's better
to just preserve case.
For basic normalization, `simplify-path' is the right choice. Use
inode identity (as `raco setup' does) when anything stronger
than `simplify-path' is needed.
`setup/path-relativize'.
`setup/path-relativize' is freed from a bunch of things that were due to
historical baggage, but some remain. (Also, update its docs.)