Call SlideOutController.Delegate.OnSlideChanged at the right timing

Previously, OnSlideChanged was not called when the notification went
back to the origin position after the animation ends, but when the
animation starts. So we had the detection code in SlideHelper.Update()
and there was a bug of no control buttons (crr crbug.com/949436).

This CL refactors the CL and makes it called at the correct timing
(just after animation is finished) and the correct |in_progress|
status.

Also this CL adds some tests of SlideOutController.

Bug: 949436
Test: manual (did the steps on the bug, and observed as expected)

Change-Id: I0fdc7b6173ef2ad415ce981b482b65f319b948d8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1552209
Reviewed-by: Tim Song <tengs@chromium.org>
Commit-Queue: Yoshiki Iguchi <yoshiki@chromium.org>
Cr-Commit-Position: refs/heads/master@{#649021}
5 files changed