Abstract content binding into an interface

Introduce NotificationRowContentBinder interface which adds a layer of
abstraction for the underlying binding implementation. Any implementing
class is basically responsible for taking in certain bind parameters and
binding the appropriate content views. This allows us to more easily
shift out the underlying implementation (i.e. whether its asynchronous
or not, whether we use remote views or not).

Currently, NotificationContentInflater concretely implements this by
creating and using the remote views provided in the notification and
asynchronously inflating/applying it.

Bug: 145749521
Test: atest SystemUITests
Change-Id: Ib03aafe9b4322f0625a4a2d5403423a93ea0d9dc
15 files changed