Add flag to allowing the system to make BubbleMetadata for a notification

- Add experiment class to try and keep experimented related code in
- If notification has info to bubble & is allowed, make BubbleMetadata for
  it (but don't actually bubble)
- Options for only allowing messages to bubble
- Alter NotificationEntry to have settable BubbleMetadata
- Add notion of user created bubbles & user promoting / demoting content
  to a bubble; user created bubbles can't be canceled or finished, the
  user must explictly dismiss the notif
- Move all of our Dependency.get into constructor & use inject

Test: it compiles (see manual tests in CL with the menu affordance)
Test: atest BubbleControllerTest
Bug: 138116133
Bug: 143173197
Change-Id: I6100bce7b74146afd4e0c4c02d4ce7731fecd5af
9 files changed