Add routes to NavGraph

This add routes to NavGraph. You can set a route and
startDestinationRoute as an alternative to an id and
startDestinationId.

Passing a blank route of startDestinationRoute is equivalent to passing
0 meaning you can have a NavGraph with a blank route, but you cannot
have a NavGraph with a blank startDestinationRoute.

This change also includes the addition of routes to the NavGraphBuilder
Kotlin DSL

RelNote: "Navigation now supports adding NavGraphs by using a route."
Test: NavGraphTest, NavGraphAndroidTest, NavGraphBuilderTest
Bug: 172823546
Change-Id: I36c68144318ac23785c9178e847b677c0ef1cd8d
10 files changed