[Enhancement] Adding the ability to apply or discard a subset of keys

We have a fair complex form that we back with the buffered proxy and found that we could "stage" a bunch of changes inside of the buffer and then when the user submits the form apply only the subset that should be persisted instead of the whole buffer.

```js
actions: {
  submit: function() {
    this.applyBufferedChanges(this.get('keysToApply'));
    ...
  }
}
...

keysToApply: function() {
  // logic to determine which keys to persisted
}.property()
```
I don't think this will work for the case where onlyTheseKeys is undefined as we still need to loop over everything in the buffer.