Product (multiplication)

```
/**
*  Returns the product of some numeric properties and numeric constants
*
*  Example: 6 * 7 * 2 = 84
*
*  Usage:
*    a: 6,
*    b: 7,
*    c: 2,
*    d: product('a', 'b', 'c'), // 84
*    e: product('a', 'b', 'c', 2) // 168
*/
```

JSBin to play with: http://emberjs.jsbin.com/qutak/7/edit?js,output

There's definitely an edge case that's ambiguious, and what I've done is attempt to make it as narrow as possible. Only in the event where you try to use a string literal that's *also* a property key on a given object will you run into trouble. 

```js

Ember.Object.extend({
   myVal: 'This is my value',
   myProp: computedPropertyMacro('myVal'/*literal or property?*/)
});

```
In this PR, my assumption is that, if `myVal` exists as a property on the object -- the developer intends to refer to that property and not an identically-named string literal. The resultant behavior:

* All properties work as expected
* All non-string literals work as expected
* All string literals that don't clash with property names, work as expected


References for anyone else who cares to follow
* https://gist.github.com/hjdivad/8308522
* https://gist.github.com/hjdivad/8923385