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.
Why did tihs comment move outside of the block that it is relevant to?