Move base::WeakPtr's null ctor out-of-line

They already invoke the out-of-line constructor for WeakPtrBase (which needs to
set up the WeakReference, so being out of line makes sense). Because of that,
doing ptr_ = nullptr inline doesn't any performance but costs size.

Since WeakPtr is a template, move the ptr_ member into the non-template
WeakPtrBase and initialize it in that class's out-of-line ctor.

This is expected to reduce the binary size by ~8KB on Android and 48KB on x64 Linux.

BUG=728324

Review-Url: https://codereview.chromium.org/2961083002
Cr-Commit-Position: refs/heads/master@{#483474}
3 files changed