Ember.GroupableMixin

I've extract this from our app and added some more tests and functionality. Our initial use case was taking an array of notifications and splitting them in groups (ie: meetings, reminders, emails) for display ala  OSX notification center. Since then I've used it quite extensively in our app. I use to generate calendars and other split sections. I think other people would find this useful so I've open this PR.

`Ember.GroupableMixin` is notable because it does not implement the `arrangedContent` property. This is because it would probably screw up other things. Instead it implements `groupedContent`. This way you can use the `Ember.GroupableMixin` with `Ember.SortableMixin` or anything else.

If the core team wants this code, I'll add documentation and examples.