Changed mind on handling forward declarations

Replaced is_struct with forward_declare (taking "class", "struct" or FALSE)
Harmonise member/access yaml fields.

Same for both methods and active fields.  Both take option 'access'
which can be member/function for method and member/function/field for
active.
Basic integer stack, wrapping std::stack

Nothing very interesting, but exercises much of the package in the end
New set of "simple" classes for testing corner cases.

Only implemented the entirely empty case (being the opposite of
the other classes), which threw up a few bugs straight away.