Fix handling of missing values

Currently, this new test fails with:
```
expected:<null    null> but was:<0        1>
```

This is because Protobuf does not (always?) return null from getField when the field is not set. For strings you will get "", for enums a bogus value, for integers 0... This complicates filtering out missing values and has the potential to introduce a lot of bogus information.