Add hasOne association

Models can now define a hasOne association as the inverse of a belongsTo
association:

```javascript
App.Person = DS.Model.extend({
  heart: DS.hasOne(App.Heart)
});

App.Heart = DS.Model.extend({
  person: DS.belongsTo(App.Person)
});
```

Includes updates for DS.RESTSerializer to parse hasOne information out
of incoming record data but not include it with outgoing data.