Revamp name resolution (yet again).

We need to be sure that defs that span files (packages) are properly reused.
Otherwise we get a duplicate of the package def for each compunit that declares
it and top-level defs are all wonky, etc.

Packages/modules are pesky.
Added a mode for skipping fn, etc. bodies.

When processing something large like the JDK, it cuts indexing time in half
(from 60s to 30s on my machine) and the index size in half (from 200MB to
100MB). It means that there are no names for locals in JDK code, but I think
that's a tradeoff I'm willing to make.

I could conceivably have the JDK re-index compunits on demand if and when you
visit them, but I'm not even sure that's worth it.