Fix the FieldDefaults parser test.

This introduces two minor divergences from protoc's test.
First, our parser test resolves names, so it requires that
an enum be defined for the enum-typed field.
Second, our parser matches the descriptor.proto documentation
for default_value for numeric fields (namely, storing the
original text representation) whereas protoc appears to
parse the number and format it as decimal.
Change generation of FieldDescriptorProto to match protoc.

descriptor.proto permits setting both `type` and `type_name`,
but protoc only sets one of them, and `type_name` is set to
the original parsed name, which may not be fully-qualified.
Finish parsing, resolving and generating enums.