[Refactoring] Consolidate forward reference handling between aggregates

- Find valid `scope` first
- Set parent before `type` semantic and its mangling calculation
- `parent` and `type` are necessary even for opaque declaration
[Refactoring] Consolidate handling of protection, storage_class, and userAttributes

They should be applied even for opaque declaration
[Refactorign] Consolidate `symtab`
[Refactoring] Fix ungagSpeculative() position