Fix new check for missing semicolon after struct definition to deal with the
case where the type in the following declaration is specified as a template-id,
and refactor for clarity.


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@195280 91177308-0d34-0410-b5e6-96231b3b80d8