Add a clang tool to detect std::move(raw ptr)

The CL also adds a sentence to the documentation for clang tools, to supply a
bit which was unclear for me during writing of the added tool.

So far, on Linux, the tool found instances of std::move(raw ptr) in:

../../components/browser_sync/profile_sync_service.cc:10101
../../components/sync_sessions/sessions_sync_manager.cc:5987
../../content/browser/indexed_db/indexed_db_transaction.cc:3865
../../gpu/ipc/service/gpu_channel.cc:26467
../../services/preferences/tracked/pref_hash_store_impl.cc:3329
../../services/preferences/tracked/pref_hash_store_impl.cc:4518
../../services/ui/public/cpp/bitmap/child_shared_bitmap_manager.cc:5009
../../services/video_capture/test/mock_device_factory.cc:2266

It also found it in some 3rd party headers, such as
../../third_party/flatbuffers/src/include/flatbuffers/flatbuffers.h:8260
../../third_party/skia/include/core/SkCanvas.h:14756
../../third_party/webrtc/api/proxy.h:16937
../../third_party/webrtc/api/proxy.h:19681
../../third_party/webrtc/api/proxy.h:20241
and c++ libs.

The Chromium 1st party instances will be addressed in separate CLs. For the headers, I'll consider if it makes sense to address this (e.g., some occurrences seem to be template instantiations, where the template is not a priori aware that the supplied type is a raw pointer; in such cases std::move should stay).

I may also run the tool on more platforms.

Finally, while preventing regressions would be good, it seems impractical to run this tool as a presubmit check. However, I will try to run it after https://crbug.com/646113 is finished, because that base::Value refactoring might introduce some instances (happened to me recently).

BUG=729393,731577

Review-Url: https://codereview.chromium.org/2919243002
Cr-Commit-Position: refs/heads/master@{#478226}
diff --git a/docs/clang_tool_refactoring.md b/docs/clang_tool_refactoring.md
index 4554646..4168145 100644
--- a/docs/clang_tool_refactoring.md
+++ b/docs/clang_tool_refactoring.md
@@ -110,6 +110,12 @@
 It is important to use --bootstrap as there appear to be [bugs](https://crbug.com/580745)
 in the clang library this script produces if you build it with gcc, which is the default.
 
+Once clang is bootsrapped, incremental builds can be done by invoking `ninja` in
+the `third_party/llvm-build/Release+Asserts` directory. In particular,
+recompiling solely the tool you are writing can be accomplished by executing
+`ninja rewrite_to_chrome_style` (replace `rewrite_to_chrome_style` with your
+tool's name).
+
 ## Running
 First, build all Chromium targets to avoid failures due to missing dependencies
 that are generated as part of the build: