Make overriding fetching attributes and relationships easier

Currently there is no easy way to hook into the place where `get('attribute')` is called (where attribute can be also relationship). This is needed in order to extend ember-data with custom behavior in those points.

My use case is "incomplete" record. On https://travis-ci.org we use a notion on "incomplete" records - record that has an id and a data populated in some way (in our case it's pusher), but this data may not contain all of the attributes. When attribute that can be missing is fetched, full record is fetched through the API. That way even if we use attributes or relationships that are not set by pusher, we don't risk that data is outdated.

I would like to send a pull request for incomplete functionality as well, but figuring out how should it work to be useful also for others and pushing it into the framework will probably take some time. The changes in this pull request are pretty straightforward and will enable me to implement incomplete records much easier (ie. no monkey patching).