GCM: refactor IncomingMessaging and OutgoingMessage.

This will allow them to be used in:
chrome/common/service_messages.h

* Make them top level classes.
* Move IncomingMessage and OutgoingMessage to their own file
* Depend on this through the gcm_driver_common component
* Export them

BUG=402456
Design document: https://goo.gl/LRdGTm

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

Cr-Commit-Position: refs/heads/master@{#338494}
diff --git a/components/gcm_driver/gcm_driver_android.h b/components/gcm_driver/gcm_driver_android.h
index 2dd0e702..6929847 100644
--- a/components/gcm_driver/gcm_driver_android.h
+++ b/components/gcm_driver/gcm_driver_android.h
@@ -78,7 +78,7 @@
                                   const std::string& sender_id) override;
   void SendImpl(const std::string& app_id,
                 const std::string& receiver_id,
-                const GCMClient::OutgoingMessage& message) override;
+                const OutgoingMessage& message) override;
 
  private:
   base::android::ScopedJavaGlobalRef<jobject> java_ref_;