Update `Message#inspect` to look like an object

I've seen the think the current `#inspect`, which looks like a Hash, encourages hash access on protobuf `Message` instances, ex `message[:key]` over the property access, `message.key`

I would like to change the default `#inspect` to look more like an object to illustrate that property access is available. The main advantage is that property access throws `NoMethodError`s for typos while hash access does not.

Before:

```ruby
message = MyMessage.new(name: 'woo', counts: [1, 2, 3], timestamp: 0)
=> { :name => 'woo', :counts => [1, 2, 3], :timestamp => 0 }
```

After:

```ruby
message = MyMessage.new(name: 'woo', counts: [1, 2, 3], timestamp: 0)
=> #<MyMessage name="wooo" counts=[1, 2, 3] timestamp=0>
```
this will print default values where they are unset, correct?