base: Use std::move() instead of Pass() for real movable types.

Some of our movable types have real move-constructors/assignment
operators now. We can use std::move() for these types instead of Pass().

There's still some move-only types that are implemented using an
"Rvalue" type emulation, so we have to keep Pass() for those still.

R=thestig@chromium.org
BUG=557422

Review URL: https://codereview.chromium.org/1479473002

Cr-Commit-Position: refs/heads/master@{#361583}


CrOS-Libchrome-Original-Commit: 0c8d4aa8ba54f463cc22ce21bf1088edd3d1e207
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
index a44f468..a0c5f61 100644
--- a/base/message_loop/message_loop.cc
+++ b/base/message_loop/message_loop.cc
@@ -5,6 +5,7 @@
 #include "base/message_loop/message_loop.h"
 
 #include <algorithm>
+#include <utility>
 
 #include "base/bind.h"
 #include "base/compiler_specific.h"
@@ -417,7 +418,7 @@
   DCHECK_EQ(this, current());
   DCHECK(task_runner->BelongsToCurrentThread());
   DCHECK(!unbound_task_runner_);
-  task_runner_ = task_runner.Pass();
+  task_runner_ = std::move(task_runner);
   SetThreadTaskRunnerHandle();
 }