Change free API to free when the content is safe

Rather than have the NotifBindPipeline API free immediately and have the
caller know when it is safe to free, the default behavior is now to
allow the callers to "free" immediately but not actually free until the
view is safe to remove. This aligns more closely with how the API is
actually used.

This does mean that rather than immediately free, we're really just
marking the view for freeing / putting it in a transient state. We
update the documentation to reflect this and deprecate
row.freeContentViewWhenSafe (full removal will happen in further CLs)

Bug: 150719232
Test: atest SystemUITests
Test: heap dump for group of 25 children, views are properly freed
Test: Post heads up notification, see that freeing happens after
animation
Change-Id: Icebbda1519dc00fd1f90611af30b1516d1307f3d

Change-Id: I0c841bec463329801855dfccdb2cd1551e7a959e
7 files changed