Adding various improvements to Interface parsing

I went through and fixed several issues where syntactic elements in declarations were not ending up in the output.  For example, the parser did not correctly recognize a **const** block, a forward-declared class, or a field with generic type arguments.  This patch greatly improves the accuracy of the resulting AST.

I also removed the FIELDS element that surrounds each FIELD element.  Because of the way the underlying Castalia parser works, instead of a FIELDS element that surrounds a list of fields, we were ending up with a list of FIELDS elements, each surrounding one single field, and that was just cluttered.