[parser] fix lexing of function type params
[parser] fix lexing of function type params

Summary:
parameter names in function _types_ are values, not types:

```
type T = (void: void) => void
                ^^^^ .   ^^^^ types
          ^^^^ value (an error, void is reserved)
```

when parsing a function type, we're in the type lex mode, so should be switching back to normal mode to lex the parameter name.

this currently has no visible effect other than in `flow ast --tokens`, because we do some checks using the string value of the token instead of the token itself, so `T_VOID` vs `T_VOID_TYPE`, `T_ASYNC` vs `T_IDENTIFIER { raw = "async" }`, etc, don't make a difference. but it caused me some issues while debugging, so cleaning it up.

Reviewed By: samwgoldman

Differential Revision: D18331491

fbshipit-source-id: dcf6d7ebcd7711a58a63c44bb609b6b8c42b085f

nmote/flow,nmote/flow,nmote/flow,nmote/flow,nmote/flow,nmote/flow,nmote/flow