using 'yield' automatically turns functions into generators

See discussion https://github.com/jashkenas/coffee-script/pull/3078
`f (yield 0), (yield 1)` fails because `yield` is used outside of a function definition. The parser works recursively, so nested structures will indeed pass the test. For example, `x = -> f (yield 0), (yield 1)` works correctly.