Zerigo records and zones were setting a TTL of 3600 on the model if no
TTL was set in the response. On first glance this seems like A Good
Thing - yes we want a default TTL! However, it masks the fact that a
record might have no TTL set on it and is using the default TTL from the
zone. If you're trying to use the model to determine if the TTL is set
to some value (say 3600), but the value defaults to 3600 if it isn't
set, then you have no way of knowing if it's right or not.
This change forces you to set a TTL if you're performing an operation
that requires one (#save).
In many places we were checking for identity which was the shorthand for
checking if the resource had been saved by the service.
The #persisted? method was added to show a clearer intent and also offer
minimal ActiveModel interface