Ensure required fields raise the correct error during encoding when not assigned

The spec existed to catch this issue, unfortunately it didn’t fail
because the message we were testing against had a field named “name”,
thus calling `self.name` in the raise string didn’t fail, it just
returns nil (since the name value wasn’t set).

The fix then is to create a message type with a required field named
something other than `name`.