Add support for enum records
- Add EnumConstantRecord and EnumRecord to store API information for enums
- Implement VisitEnumDecl in ExtractAPIVisitor
- Implement serializatin for enum records and MemberOf relationship
- Add test case for enum records
- Few other improvements
I still think this belongs in APISet. It belongs there because it defines unique pointers that are specifically tied to the lifetime of APISet. Any other thing that needs a reference to things allocated in the APISet should just get the raw pointer out, ideally they should be storing the pointer returned by the add* methods of APISet.