Smart Lock: Move Observer handling from impl to base ProximityMonitor.

This makes test stubs and mocks use the common Observer logic. In a test
context, this will catch mistakes where Observers are added multiple times
or not removed (this would have caught crbug.com/910769).

Bug: 910769
Change-Id: I053d0605b5d4ec2f4b2da117b735a31c7447e804
Reviewed-on: https://chromium-review.googlesource.com/c/1368685
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Ryan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615212}
6 files changed