Fixed bug in Q.async yield

See the unit test I added for an example of this bug.

`Q.async` allows the use of `yield`. Unfortunately, the value of the previous expression is not returned, that is, the return value of the yield expression is always `undefined`.

So instead of
```javascript
var value = yield doSomething();
```
We'd have to use
```javascript
var promise = doSomething();
yield promise;
var value = promise.inspect().value;
```
Which is cumbersome.

This commit fixes this problem.

To properly test the problem, I had to switch jasmine-node to harmony mode. If this is a problem, I could try to rewrite the test to use plain old JS functions.