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
i believe `self.class.default` is hard-coded to `0`, which would make this work only for enums that start with 0 - we have some that start with 1, and others may start with any integer, AFAIK.

Do you think this could be:
```ruby
type_class.enums.first
```
?