Improved lookahead for arrow functions.

Fixes issue #34.

Specifically:
* We no longer automatically assume "()" is a function expression. It must be followed by an arrow, colon, or curly brace.
* If an arrow is missing following a signature, but a curly brace is present, we assume the user forgot the arrow and try to parse the body anyway.
You don't need the tryParse here. Instead, just call tryParseSignatureIfArrowOrBraceFollows. Internally, that function should use tryParse for the signature portion.