(PUP-2817) Fix zone properties so that nil is not passed through

Before this patch, when `insync?` was called on the zone properties ip,
dataset and inherit with value nil (happens the first time when the properties
are not present), `true` was returned, which resulted in them not being set
until the values were actually queried, which happened after the installation
of zone. Unfortunately, the inherit property can only be set before
installation.

This patch removes the spurious check for `nil`, which always returned `true`,
and instead handles it similar to when `:absent` is used.
Maybe restructure in a `describe` block like:
```
describe "when a property is :absent or nil"
  it "should verify that property insync? is true if should is empty"
 ...
  it "should verify that property insync? is false if should is non-empty"
```

Clearer?