Make clang grab argument names wherever they exist

If there are multiple declarations (which subsume definitions), their descriptions are merged giving priority to argument names in the first declaration.  Most of the complexity of this commit is in asserting that the descriptions we're merging differ *only* in their argument names.