Add Model#load() for loading existing models

Model.load now delegates its work to Model#load. This allows adapters to
load attributes into existing models for reloading, or for returning
model placeholders in async adapters. This allows an adapter to return a
model instance immediately, and then to fill it with data once the
adapter has resolved the remote data.