Really don't attempt to perform template expansion if there are no arguments.

This is more patching up on the back of 83e58ce5 and 6922a33. I was seeing
"ac-clang-template-action: Wrong type argument: arrayp, nil" when expanding
member variable names. I think due to ac-clang-template-action being called when
there were no function arguments to expand. Now, when we add an empty candidate
to the list of template expansion candidates, we add a property to tell
ac-clang-template-action that it should not attempt template expansion for that
candidate.

This complexity makes me think we would be better off if template expansion did
not occur automatically after completion, but had to be triggered by '(' or '<'.
Correct regexp used to identify C++ templates.

e32a928 extended the regexp used to identify function parameters to template
parameters. This failed to account for the fact that clang-complete uses '<#' to
introduce parameters, so ended up matching non-template, non-function-call
completions such as "COMPLETION: return : return <#expression#>".

As of this commit, a separate regexp is used to identify C++ templates.