Cleaning up declarator rules.

Need to fix up the parameter handing for functions; the first step
was to clean up the rules for types and declarators.