base-wrap: add BaseWrap as basics for any *Wrap

This also removed WeakObject. Reordering the inheritance chain helps
prevent unneeded calls on instances that don't call MakeCallback.