Add MaybeValid() to WeakPtr

This re-lands commit 35d520e5adbfbbb4a1a657a97b03a53e4e8f75b3

Instead of changing the behavior of operator bool(), we instead define a new
method, WeakPtr::MaybeValid().

Outlined in the design doc:
https://docs.google.com/document/d/1IGzq9Nx69GS_2iynGmPWo5sFAD2DcCyBY1zIvZwF7k8/edit

Bug: 730693
Change-Id: I9fcc8804e11a8adb82111e21814b375b59231687
Reviewed-on: https://chromium-review.googlesource.com/1141085
Commit-Queue: Nicolas Ouellet-Payeur <nicolaso@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576572}
5 files changed