Annotate destructors in the C++ scope tree

Two tweaks on things I missed out on in the previous PR:

1. Properly annotate destructors (check for a `~` token preceding the function name, which we have confirmed matches the class name),

2. When attempting to walk over an initialization list, fail if the `:` encountered is associated with a class access modifier.