[Android MR] Migrate RemotingCastSession to CAF

This CL migrates RemotingCastSession into RemotingSessionController (CAF
version). Changes include:

* Abstract common logic from CastSessionController into BaseSessionController.
* Add onSessionStarted() and onSessionEnded() callback to BaseSessionController
  to handle session-specific logic regardless of session suspend.
* Return the correct namespaces in CastSessionController

Please diff BaseSessionController from Patchset 2 for easy review (other files
should be diff'ed against base)

Bug: 711860
Change-Id: I2bcb71b38758bb7f7b3a46f25cc4d55fe5c2956f
Reviewed-on: https://chromium-review.googlesource.com/1220300
Commit-Queue: Zhiqiang Zhang <zqzhang@chromium.org>
Reviewed-by: Thomas Guilbert <tguilbert@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590566}
9 files changed