Add abstraction and compatibility for car ui.

+ Add CarUiEntry abstraction and necessary classes to android.car
+ Add compatibility layer in android.support.car
+ Changed CarUiProvider package name.
+ remove an unused test app.
------------------------------------------------------------
+ For Car OEMs, they provide CarUiProvider which implements
android.car.CarUiEntry entry class. We have cts for CarUiEntry. Any
CarUiProvider runs in the car needs to pass cts.

+ For Car app developers, they should only use android.support.car
library for compatibility. The CarDrawerActivity uses an abstract
CarUiController to talk to the CarUiProvider in the "car" or gearhead.
CarUiController handles compatibility for different versions of
CarUiProvider(CarUiEntry), and even across embedded and projected.

+ For Android Auto projected mode, we will use a separate
projection-ui-controller-lib to glue android.support.car and gearhead.
(coming in another cl).

Bug: 27297716

Change-Id: Id775f4a1e529ecd9beb5f04bb9f768f93d3af331
49 files changed