Refactored 'model.save'

Model.save had a lot of confusing juggling of previous and new attributes. I removed this but had to remove a test as well.

I believe the test I removed is not valid because the purpose of passing `{wait: true}` is to wait for the server to respond before setting the new attributes. I don't think that `model.toJSON` should be returning the new attributes during the sync function. I might be entirely wrong, but it looks weird.