clang-format: Separate out a language kind for ObjC.

While C(++) and ObjC are generally formatted the same way and can be
mixed, people might want to choose different styles based on the
language. This patch recognizes .m and .mm files as ObjC and also
implements a very crude detection of whether or not a .h file contains
ObjC code. This can be improved over time.

Also move most of the ObjC tests into their own test file to keep file
size maintainable.

llvm-svn: 289428
diff --git a/clang/unittests/Tooling/ReplacementTest.h b/clang/unittests/Tooling/ReplacementTest.h
index 91530f0..b6fe5c7 100644
--- a/clang/unittests/Tooling/ReplacementTest.h
+++ b/clang/unittests/Tooling/ReplacementTest.h
@@ -24,7 +24,7 @@
 /// \brief Converts a set of replacements to Replacements class.
 /// \return A Replacements class containing \p Replaces on success; otherwise,
 /// an empty Replacements is returned.
-static tooling::Replacements
+inline tooling::Replacements
 toReplacements(const std::set<tooling::Replacement> &Replaces) {
   tooling::Replacements Result;
   for (const auto &R : Replaces) {