RouteSessionInfo: Remove isValid() and override equals()/hashCode()

This CL removes RouteSessionInfo#isValid() since there is are no usages.
Also overrides equals() and hashCode().

Also, it applies following changes:
 - Make the class as final
 - Add javadoc for using an empty string for unknown client package name
 - Throw exception in Builder#build() if there is no selected routes.
 - Throw IllegalArgumentException in Builder#add/Remove*Routes(routeId)
   when the given routeId is empty or null.

Tests for the class are also added.

Bug: 147524068
Test: atest mediaroutertest
Change-Id: I2cb6cc37a8216dd42dc72edee72bb5211259c66a
5 files changed