Fix some bugs with -W unused-imports

1. Don't warn about anything not used in the prelude which is autmoatically
   injected, accomplished with a test that the span is equal to a dummy span.
2. Don't warn about unused imports from the injected intrinsic module,
   accomplished by testing against the name of the imported module
3. If anything is used from a glob import, don't warn about the glob import.
4. If an import imports more than one thing, and none of them are used, only
   issue a warning once

Also updated the unused-imports-warn test to have stricter requirements on
error messages.
Don't warn when imported traits are indeed used
fix typos in sample code, add enum to json encoder, add test case
json bugfixes
tidy
json bugfix
json add enum encoder test case
starting to add splicelexer
transferring to other machine...
working on ICE in traits
Changed TTFrame to structural record, allowing removal of aux structure
checkpoint, testing for damage
going home now...
checkpointing
test cases, backing out of several changes
test case fixes
deriving-eq all over ast
use node_id for indexing in ast_to_ty_cache
finish deriving_eq in ast
tidy