Make sure all enum values have names (including defaults)

A common pattern for us is

```ruby
message.enum_field.name
```

but with an unset field, this ends up being a plain ol' Fixnum, not an instance of `Protobuf::Enum`, and this blows up!

```ruby
message.enum_field.name
# NoMethodError: undefined method `name' for 0:Fixnum
```

This change lets us treat defaults as if they had names, simplifying our code.

cc @tamird
An enum is a special case of an integer, which has a specific list of values, which is given by the proto definition. Given that, it's surprising that deserializing an enum results in a value that lies outside the defined list.