First pass at making Em.computed.sort easier to work with.

This commit makes it so we can define an object of sortProperties instead of an ordered array.
The advantage to this is making the public API easier to manipulate for the user. 

So now, we can define our list of sortProperties as an object instead of an ordered array

E.g.

```javascript
App.AnimalsController = Ember.ArrayController.extend({
  sortProps: {
    'name': {asc: true, priority: 1},
    'fleaCount': {asc: false, priority: 0}
  }

  // instead of
  // sortProps: ['fleaCount:desc', 'name:asc']

  sortedContent: Em.computed.sort('content', 'sortProps')
});
```

This will allow us to `get/set` each key in `sortProps` individually. 

Here's a jsbin that illustrates the problem with manipulating sortProperties right now:

http://emberjs.jsbin.com/eyusezo/5/edit?html,js,output

**Note**: I am working on making the tests pass as well. But I thought I'd throw this up here for discussion in the meantime.