Move the symbol table from PClass to PStruct.
- Fixed: NewArray returned the element type, not the array type.
- Added NewEnum() function.
- Added NewStruct() function.
Remove extraneous PField class

- Remove the existing PField class, rename PMemberField to PField, and
  derive it from PSymbol instead of the old PField.
Added PStruct::AddField()
PArray's size should take alignment into account.
Make FType::Hash work for PPrototype

- For Prototypes, Hash is passed the address of two TArrays. If we blindly
  hash those without checking their contents, then we can forget about
  ever finding any matching prototypes in the type table. (Not that I
  remember why I wanted them to be unique, but I'm sure I must have had my
  reasons.)
Added NewPrototype() function
Added basic implementation for PField.

- I don't know why this didn't give me trouble before, but I needed to add IMPLEMENT_CLASS for PField.
Change PFunction's superclass from PNamedType to PSymbol
Added a way to specify paramater flags for PFunction

- And right now, the only flag is "Optional".
Add PStatePointer type
Add some flags for PFunction
Implement NewClassPointer()
Use PFunction instead of PSymbolActionFunction in DECORATE parser
Merge branch 'scripting' of github.com:rheit/zdoom into scripting