Avoid NPE in animation scheduling

If a changed item disappears in post layout, RV calls animateChange.
But if item is never laid out in post layout, it was calling animate
disappear. This was inconsistent because even if the View is laid
out in post layout, it probably does not have the updated data.
This edge case is inheritly conflicting so this CL clarifies &
documents the behavior such that:

When a changed item disappears:
 * If item animator decided to re-use the same ViewHolder, RecyclerView
will call animate disappearance.
 * If item animator decided to creates a new ViewHolder for post
layout, then RV will call animateChange because it is the only
callback with two view holders.
* If the layout manager did not layout the view in post layout,
RecyclerView will call animateDisappearance.

Bug: 27408348
Change-Id: Ie58b1b1a00a89b630b715d680edfa4110b0dd43d
5 files changed