Make sure all enum values have names (including defaults)
Per protobuf spec, unset enums default to first enum value

> For enums, the default value is the first value listed in the
> enum's type definition.

Source: https://developers.google.com/protocol-buffers/docs/proto#optional
Use type_class.fetch to get a default value if it exists
Prevent using Protobuf::Enum.default, it must be on an instance
prefer constants to strings
Use valid UTF-8 in UTF-8 spec

Fixes #191
Merge pull request #207 from tamird/utf-8-cycle-test

Fix UTF-8 cycling test under MRI 2.1.1
Merge pull request #203 from zachmargolis/all-enums-have-names

Make sure all enum values have names (including defaults)
use methods instead of mutable state
use default method instead of mutable state