* Created new EffectSummaryNormalizer pass to cleanly deal with cases where a function
declaration is visited before the "canonical" declaration. In that case we want to
check that the effect summary of the canonical declaration covers the effect summary
of all other declarations.
* Fixed bug with TypeBuilder not properly computing the types of array subscript expressions
* Fixed a bug with EffectCollector not properly computing the effect for array subscript
  expressions.
Adding some forward declarations of template definitions.
Added simple test for anonymous unions and structures.