Fixed Macro Parsing

The macro parsing in `Parser::WalkFunction` was incorrectly setting the `ParamStartLoc` to the end of the parameter list.  This caused the first parameter to have an inverted `sourceRange` in `Parser::HandlePreprocessedEntities` and skip processing any macros for that parameter.

Once this was fixed the `CheckMacroPass` would now correctly work for the unit tests.

Fixes #302.