MediaRouter: Add session-releated APIs to route provider

This CL introduces "session" into MediaRouterProviderService.
When a client wants to use a route of a provider, it should
request the provider to create a new session and then,
the client will control the session instead of a route.

Clients can add/remove routes into/from the session
(a.k.a. dynamic grouping) and transfer media to the other
route in a provider with less delay.

RouteSessionInfo holds information about a session and
MediaRoute2ProviderService must set session info and implement
abstract methods.

Bug: 142762829
Test: atest mediaroutertest

Change-Id: Iaf668d9a2c360cd9c7dbc5f1766d14e0d81bb3e3
4 files changed