Refactor one of the larger functions for Type Diffing into smaller functions.
No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216526 91177308-0d34-0410-b5e6-96231b3b80d8
Fix some cases were ArrayRefs were being passed by reference.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216527 91177308-0d34-0410-b5e6-96231b3b80d8
Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created.

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