Virtual destructors should have virtual keyword.

Make sure user-declared virtual destructors always have the virtual keyword.
The Clang style-check plugin will check for this soon.

No functionality change: virtual is only added
to destructors that are already implicitly virtual.

Also fix a couple of in-line destructor definitions.

BUG=83408
TEST=none

Review URL: http://codereview.chromium.org/7064033

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86587 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/message_loop.h b/base/message_loop.h
index c660c9e..9a03d6b 100644
--- a/base/message_loop.h
+++ b/base/message_loop.h
@@ -111,7 +111,7 @@
   // Normally, it is not necessary to instantiate a MessageLoop.  Instead, it
   // is typical to make use of the current thread's MessageLoop instance.
   explicit MessageLoop(Type type = TYPE_DEFAULT);
-  ~MessageLoop();
+  virtual ~MessageLoop();
 
   // Returns the MessageLoop object for the current thread, or null if none.
   static MessageLoop* current();