Bug 541549 - Pack expansion expression in type of alias template

Alias templates can be instantiated with dependent arguments, which
can themselves contain a pack expansion, so we need to take care
that pack expansion expressions are instantiated correctly.

This was previously fixed for pack expansions of types and template
arguments in bug 486971.

The patch also fixes a bug in CPPTypedef.getType() where alias
declarations weren't handled correctly. (This bug would only occur
during debugging as normally the type would be computed via setType().

Change-Id: Ie70a923fc9dd0f177b7bfb429b8f1387966b416d
4 files changed