Merge pull request #24 from velour/dev/ppmuststring

Use pp.MustString.
Distribute struct fields.

Instead of each field declaration containing multiple identifiers,
each has only one. When multiple identifiers are specified for a
single type and tag, they are distributed over the identifiers,
creating multiple FieldDecls. This simplifies the AST, making it
easier to work with it later.
Distribute parameters.

Similar to distributing struct fields, it makes the data structure
simpler and easier to work with.
Pluralize Signature.Results.
Use the correct location when a function has no return value.
Remove the ParemeterList AST node.

This greatly simplifies the representation of functions, methods, and
anything using a Signature. The cost is that we lose a bit of token
location information. Specifically, before this change, we had the
location of the '(' and ')' tokens for any parameter list. Now, we
only have the location of the start and end of a signature. This seems
like a good trade; I don't see the location information of Signatures
being too useful.
Fix a comment.