refactoring to split foreign_items from items
undo abstraction over whether to parse attrs in a block

In principle, it seems like a nice idea to abstract over the two
functions that parse blocks (one with inner attrs allowed, one not).
However, the existing one wound up making things more complex than
just having two separate functions, especially after the obsolete
syntax is (will be) removed.
parser comments
removed old type dispatch test
remove unused RESTRICT_NO_CALL_EXPRS restriction
starting to add sexp (doesn't compile)
starting to add sexp encoder
remove unused flag to parse_local fn
parser comments
remove unused functions, fix tiny lexing bug

before this change, the parser would parse 14.a() as a method call, but
would parse 14.ø() as the floating-point number 14. followed by a function
call. This is because it was checking is_alpha, rather than ident_start,
and was therefore wrong with respect to unicode.
parser comments
remove unneeded parser functions

the "looking_at_struct_literal" function (sp?) existed to distinguish
blocks from struct literals (and looked fragile as heck, too). Now that
all structs require a preceding identifier (no more structural records),
this function was unnecessary.
parser comments
deleted two tests intended to test RUST_CC_ZEAL, an apparently defunct flag for the cycle collector
remove (non-parsing) test related to impl d for d feature
this issue is a dup of another one that has a correct test case

this test case has rotted wrt modern syntax. fortunately, this issue
was a dup of another one, and that one still ICEs.
This test case is obsolete for two reasons

First, it refers to a feature (trait bounds on type parameters) that's
apparently no longer in the language. Second, if I understand the issue
correctly, it should never have been a "run-pass" test because it was
supposed to fail.
changed to impl trait for type stx
Got test cases to pass, after some major surgery
eliminate dup on StringReader