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