Fix issue 129: Unused templates are ignored on Windows

On Windows builds of Clang/IWYU -fdelayed-template-parsing
is enabled by default. This means parsing of (function) templates
is delayed until instantiation time. If a template is never
instantiated, it is never parsed.

This is terrible behavior for IWYU, where we must traverse code
in templates looking for uses, whether they're ever instantiated
or not. So we run a separate pass that force-parses all late-
parsed FunctionDecl, building their AST before IWYU analysis.

Fixes a number of prefix_header tests that were previously failing
on Windows.

git-svn-id: http://include-what-you-use.googlecode.com/svn/trunk@566 812d1f90-f944-d88a-411a-122bdc93e1ea