Large restructuring of the internals of gotoc.

The parser is split into three phases now:
	- parse a set of .proto files into an AST,
	  defined by the internal/ast package.
	- resolve names in the AST.
	- generate a FileDescriptorSet from the AST.

This will permit other tools to be written that operate on
only the AST and don't want to re-discover all the details
from the descriptor protos. Right now the packages are placed
under internal/ to stop packages outside this repository from
depending on them; when they are mature they will be rearranged.

This commit rebuilds most of the parsing, but not all.
In particular, groups and extensions are not handled, and
quite a few of the primitive field types are yet to be recognised.