add constructors and destructors
Reorganize parsing for C++ classes to allow all kinds of top level declarations in a class.
Add a case for constructors and destructors.
Not sure that the constructorname token is still useful, but we can leave that for another patch.
The parsing for Tconstructorname may be useful for the ConstructorField and DestructurField cases.
Support final.