Replace regexes with string functions in DynamicYield

Summary: As @elgenie suggested in D1440297, instead of my hacky fix, I've rewritten the regexes to not be regexes.

I also deleted str.ml completely. I do not know if we want to do this or not. This would prevent people from using Str regexes in any part of the codebase that is being compiled to javascript, so that nobody starts adding them without realizing that they don't really work in javascript.

Reviewed By: jwatzman, eletuchy

Differential Revision: D1444831
Support "yield x => y" syntax

Summary: This syntax has existed for a while but the typechecker never
supported it. Let's do it. Mostly involves changing `Yield` to take an
`afield` instead of an expression, as well as a little bit of cleanup of
cruft from the days when we faked `async` with `yield` that makes no
sense nowadays and got in the way.

Reviewed By: @elgenie

Differential Revision: D1447853