Notify of UsbService destruction as 1st step in destructor

This change ensures that observers are notified that the UsbService is
being destroyed as the very first step of the destructor, which
unfortunately means that an explicit call needs to be added as the first
line of every subclass destructor.

This allows the DeviceManagerImpl instance in the device service to
close all bindings before callbacks owned by the UsbService are
destroyed. Otherwise these trigger a DCHECK.

Bug: 953248
Change-Id: I0a05f29a6e759cb4340301b92f13ea90af76bcd6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1574142
Commit-Queue: Reilly Grant <reillyg@chromium.org>
Reviewed-by: Ovidio de Jesús Ruiz-Henríquez <odejesush@chromium.org>
Cr-Commit-Position: refs/heads/master@{#652373}
10 files changed