Summary:
This adds logic to the enum generator to generate C++ style scoped enums.
This gives us a few nicities over C enums, even if both must exist:
1. We can add types and keep unsgined enums directly in bitfields
2. Style/readability
3. Avoiding implicit int conversion
Differential Revision: D49267996
fbshipit-source-id: 0ba9a79e19616f55abdc15012fbfd26933c6d179