[FEATURE propertyBraceExpansion]

Add support for brace-expansion in dependent keys, observer and watch
properties.  The complete list of methods with this support is as follows:
- computed
- reduceComputed
- addObserver
- removeObserver
- addBeforeObserver
- removeBeforeObserver
- watch
- unwatch

This is most useful with array computed properties, although it is supported in
other cases.

Example:
```js
// The following two are equivalent
Em.O({
  filtered: Em.computed.filter('list.@each.propA', filterFn).property('list.@each.propB')
});

Em.O({
  filtered: Em.computed.filter('list.@each.{propA,propB}', filterFn)
});

// The following two are equivalent
obj = {};
observer = function() {};
Ember.addObserver(obj, 'foo', observer);
Ember.addObserver(obj, 'bar', observer);

Ember.addobserver(obj, '{foo,bar}', observer);
```
Merge pull request #3538 from hjdivad/property-brace-expansions

[FEATURE propertyBraceExpansion]