[Reason] Add String descriptions of syntax errors.
[Reason] Add String descriptions of syntax errors.

(This is the second diff - the first diff for `ReasonSyntax` that
implements the `Reason_utils` function is here: )

Summary:Per Frederic's request, we will form the extension nodes with a
richer structure (creates a string identifier for convenient display).

Test Plan: Ran in Atom+Merlin, though it does not yet render
the new string descriptions. Should we still continue and expect
support of rendering these strings in the editors will be arriving soon?

Reviewers:

CC:

yunxing/reason,yunxing/reason,ak3n/reason,cristianoc/reason,yunxing/reason,chenglou/reason,let-def/reason,let-def/reason,ak3n/reason,ak3n/reason,ak3n/reason,facebook/reason,chenglou/reason,cristianoc/reason,facebook/reason,yunxing/reason,cristianoc/reason,let-def/reason,chenglou/reason,facebook/reason