split up `parseStatement()`

It was purely interpreted by the V8 engine. Splitting it up allows the individual pieces to be optimized, so less is interpreted. I moved comments as applicable as well to the applicable function.