Support 'type' keyword on ty_params, to indicate unsized types.

See discussion in https://github.com/mozilla/rust/pull/13375
Add path variants from parser.
Switch trait ref to use path_lifetime_and_types_without_colons.
Switch bound from ty to trait_ref, solve ambiguity in proc_type.
Start on LALR(1) grammar, as it seems likely that Rust is not LL(1).

There are explicit 2-token and even 3-token lookaheads in the parser,
and multiple ambiguities that seem very hard to resolve in LL(1)-ness.

Also: everyone has bison installed already.
Add 'crate' keyword, sort lexer keyword lines.
Expand lalr parser.
Merge pull request #1 from ptgreen/master

Small fixes to the LL(1) grammar, and a start on a LALR(1) bison grammar as a backup.