Add support for first class enums.

Summary: Add support for first class enums which are being added to Hack/HHVM. Enums are represented as another sort of class, like we do in Hack.

Test Plan: Added a test.

Reviewers: pad, jwatzman

Differential Revision: https://phabricator.fb.com/D1479604

Tasks: 4527033