Fix for preprocessor CommentHandler bug

Actually, it doesn't make more sense. It makes more sense in my opinion to
keep the control of LexingRawMode in the loop, since it is set before the
loop and cleared afterwards. If we move it into CheckEndOfDirective then we
may start to see other regressions since this is called from other
locations.

Attached is the revised patch. The test-case is a gunit test. I followed
the "FIXME: Put into a common location" comment and placed the TestVisitor
and ExpectedLocationVisitor classes from RecursiveASTVisitorTest.cpp and
placed them into a separate include file, TestVisitor.h, which my new
test-case, CommentHandlerTest.cpp, also then uses.

This patch requires that patch at
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022289.html be applied
first.

Cheers
Andy

commenthandler-v2.diff (17.6 KB)