CPS Transformer: Let sent throw as needed

This allows us to reduce the amount of code we generate.

Fixes #875

There are three cases:
1. yield expr: In this case we need to insert `$ctx.maybeThrow`
2. x = yield expr: In this case the $ctx.sent getter handles the possible throwing
3. yield* expr: In this case the throwing is handled in the inner iterator.

Review URL: https://github.com/google/traceur-compiler/pull/880

Closes #880, closes #875.
Clean up generated code for symbols transformer

This identifies a few cases where we do not need to use the runtime

If comparing the result of typeof with a string we only need to use the runtime if the string is 'symbol' or 'object'.

Skip the runtime for member[0] since a non string member expression cannot overlap with the keys we are using for symbols.

Also, fold the TypeofTransformer into the SymbolTransformer.

Fixes #874

Review URL: https://github.com/google/traceur-compiler/pull/883

Closes #883, closes #874.
CPS Transformer: Use runtime function for the last 3 states

We always generated 3 case/default states at the end of all  machines. These were always the
same. This the generated code to use a single state with a runtime function.

Fixes #881

Review URL: https://github.com/google/traceur-compiler/pull/882

Closes #882, closes #881.
traceur@0.0.30
CPS Transformer: Clean up conditional state and blocks

Fixes #886 #887

Review URL: https://github.com/google/traceur-compiler/pull/888

Closes #888, closes #886.
CPS Transformer: Allow yield and return in finally

We disallowed yield in finally based on an old design. We have covered this in TC39 and it should be allowed.

Fortunately it just worked.

Review URL: https://github.com/google/traceur-compiler/pull/889

Closes #889.
traceur@0.0.31
Merge branch 'master' into await-expression

Conflicts:
	bin/traceur.js
	src/codegeneration/generator/AsyncTransformer.js
Updated tests