[FEATURE beta] Composable Computed Properties 

This feature allows you to combine (compose) different computed
properties together. So it gives you a really nice "functional
programming" like syntax to deal with complex expressions.

Example:
```javascript
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;

var Person = Ember.Object.extend(
  napTime: and(
    equal('state', 'sleepy'),
    not('thirsty'),
    not('hungry')
  )
);
  
var person = Person.create({
  state: 'sleepy',
  thirsty: true,
  hungry: false
});

person.get('napTime') => false
person.set('thirsty', false)
person.get('napTime') => true

var Kitties = Ember.Object.extend(
  // starting from the inside out, this CP:
  // maps two arrays,
  // takes the union,
  // and then sorts them using Em.computed.compare
  allKitties: sort(
    union(
        mapBy('whiteKitties', 'name'),
        mapBy('blackKitties', 'name')
    ), compare
  )
);

var kitties = Kitties.create({
  whiteKitties: Ember.A([
    { name: 'whiskeys' },
    { name: 'bagels' }
  ]),
  blackKitties: Ember.A([
    { name: 'little boots' }
  ]),
});

// `allKitties` CP gets the union of both arrays
// and sorts them using Em.computed.compare
kitties.get('allKitties') => ['bagels', 'little boots', 'whiskeys']
```

Examples above use `Ember.Object` but Composable CPs work perfectly fine with POJOs:

```javascript
var not = Ember.computed.not,
    obj = {
      firstName: 'Joe',
      lastName: 'Black',
      hungry: true
    };

Ember.defineProperty(obj, 'happy', not('hungry'));

Ember.get(obj, 'happy'); // => false
```
Kudos to brilliant @hjdivad for his help.

### Update on two points mentioned below:

+ out of the box chaining syntax
+ alias/get to determine literal or bound & compatibility strategy

Both of them belong in a separate PR, so I'm going to remove them from the check list. It does seem reasonable to have something like that in ember, but I'm not sure what the best approach is to implement this kind of functionality and I don't want it to hold this PR.