Extracts computed property set into a separate function

This is done to work around V8 (it cannot optimize functions with `try` blocks).

Comparison from a real app:

`defineProperty`

Before:
![defineproperty
deopt](https://cloud.githubusercontent.com/assets/1131196/4164553/ad42a504-34f6-11e4-92cc-fdf17e88cc22.png)

After:
![defineproperty
cp-set](https://cloud.githubusercontent.com/assets/1131196/4164559/bf012a86-34f6-11e4-9bba-e5b2dc378946.png)
So confused. Why did we stop using `__nextSuper.apply(this, arguments)` then? Instead we have a two pass "optimization" there, first build a new array, then pass it to the Ember `apply` function that tries to use call.

Or is it still slower even if it doesn't de-opt? Just trying to understand where it is appropriate to use `Function.apply` and not.