Tests

This PR is still not ready yet, I mainly decided to issue it to have things to discuss.
@abuiles have a few questions:
1) How to move instance of DS.record in state other than isNew not by calling save() ?
2) The same is for isDeleted.
When I try to get to non-isNew state by saving record, I end up with having chained promises in my tests (save for create -> then save for update (or delete) -> then assertions). It causes errors like: 
```javascript
Error: assertion outside test context
```
or
```javascript
Assertion Failed: Error: Attempted to handle event `unloadRecord` while in state root.loaded.created.inFlight.
```
Any suggestions on how to implement tests for update/delete ?