Parse named callback types
Use a Deque instead of a Set for collecting second pass elements

The parsing of structure fields can fail in the first pass because
of an undefined type. Field parser functions for the same class
share a single context, and increment a field number in it after
successful parsing. This approach makes the resulting field order
dependent on parsing order, which, combined with a Set for storing
the nodes to visit in the second pass, effectively randomizes the
order of fields parsed in the second pass. Adding to the back of a
Deque, and removing from the front in the second pass keeps the order
of fields the same as it is in the XML.

An added benefit is that the Deque doesn't have to be copied for
iteration in the second pass. Also, if the Deque is a LinkedList,
maintaining it is potentially faster than with a HashSet used until
now.
Do not make private class/record member getters/setters private

BridJ does not count the fields this way, which alters the size of the
enclosing struct type as seen by BridJ. This causes problems with nested
structures, which is used extensively by GStreamer. (The nested structure
is believed by BridJ to be shorter than it actually is, therefore
potentially breaking offset calculation for other fields.)

Since the getters/setters are prefixed with the class name, no
inheritance-related name conflicts should occur, therefore it is safe to
make them public again.