[hack] Support static coroutines
[hack] Support static coroutines

Summary:
If a coroutine is declared as `static`, then the following changes are needed:

  1. The generated state machine method must be `static`
  2. The lowered coroutine method must refer to the generated state machine method using `class_meth("ClassName", "methodName_generatedStateMachine");` instead of `inst_meth($this, "methodName_generatedStateMachine");`

Reviewed By: ericlippert

Differential Revision: D5139575

fbshipit-source-id: 6b9cffe2a0c081a7b327d06a844fd9074f21c93a

popham/flow,facebook/flow,nmote/flow,ylu1317/flow,jamesgpearce/flow,ylu1317/flow,popham/flow,samwgoldman/flow,TiddoLangerak/flow,MichaelDeBoey/flow,ylu1317/flow,mroch/flow,popham/flow,ylu1317/flow,mroch/flow,samwgoldman/flow,nmote/flow,ylu1317/flow,claudiopro/flow,AgentME/flow,gabelevi/flow,fletcherw/flow,samwgoldman/flow,gabelevi/flow,MichaelDeBoey/flow,AgentME/flow,AgentME/flow,nmote/flow,nmote/flow,fletcherw/flow,samwgoldman/flow,facebook/flow,MichaelDeBoey/flow,nmote/flow,gabelevi/flow,mroch/flow,claudiopro/flow,samwgoldman/flow,TiddoLangerak/flow,MichaelDeBoey/flow,JonathanUsername/flow,facebook/flow,AgentME/flow,jamesgpearce/flow,TiddoLangerak/flow,JonathanUsername/flow,MichaelDeBoey/flow,samwgoldman/flow,gabelevi/flow,facebook/flow,JonathanUsername/flow,mroch/flow,fletcherw/flow,fletcherw/flow,AgentME/flow,popham/flow,mroch/flow,jamesgpearce/flow,facebook/flow,jamesgpearce/flow,claudiopro/flow,facebook/flow,mroch/flow,mroch/flow,JonathanUsername/flow,popham/flow,JonathanUsername/flow,gabelevi/flow,claudiopro/flow,popham/flow,JonathanUsername/flow,popham/flow,nmote/flow,jamesgpearce/flow,gabelevi/flow,TiddoLangerak/flow,JonathanUsername/flow,TiddoLangerak/flow,fletcherw/flow,jamesgpearce/flow,jamesgpearce/flow,nmote/flow,gabelevi/flow,facebook/flow,samwgoldman/flow,claudiopro/flow,fletcherw/flow