[FEATURE Composable Computed Properties]

This feature allows you to combine (compose) different computed
properties together. Example:

var sort    = Ember.computed.sort,
    union   = Ember.computed.union,
    equal   = Ember.computed.equal,
    mapBy   = Ember.computed.mapBy,
    not     = Ember.computed.not,
    compare = Ember.compare,
    and     = Ember.computed.and;

    person  = Ember.Object.extend(
               napTime: and(
                          equal('state', 'sleepy'),
                          not('thirsty'),
                          not('hungry')
                        )
             ).create({
               state: 'sleepy',
               thirsty: true,
               hungry: false
             }),

    kitties = Ember.Object.extend(
               allKitties: sort(
                         union(mapBy('whiteKitties', 'name'),
mapBy('blackKitties', 'name')),
                         compare
                       )
              ).create({
                whiteKitties: Ember.A([{ name: 'whiskeys' }, { name:
'bagels' }]),
                blackKitties: Ember.A([{ name: 'little boots' }]),
               });

person.get('napTime') => false
person.set('thirsty', false)
person.get('napTime') => true

kitties.get('allKitties') => ['bagels', 'little boots', 'whiskeys']