Previously, the model was being incorrectly loaded from request data. As a
result, the username and apiKey properties were always nil. This fixes parsing
and improves the tests to catch this type of bug in the future.
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