CallbackPromiseAdapter types should be more compatible with WebCallbacks (2/3).

This series of CLs makes CallbackPromiseAdapter (CPA) more compatible with
WebCallbacks (WC) in terms of type parameters.

Before this CL, CPA<S, T> corresponded to WC<S::WebType*, T::WebType*>. CPAs
took ownership of passed pointers but there was no place to represent that in
WebCallbacks.

This series of CLs changes that: CPA<S, T> correspond to WC<S::WebType,
T::WebType>. CPA users can specify if he/she wants the parameter ownership by
specifying the type parameter. For example, setting S::WebType to OwnPtr<X>
means it takes ownership. Setting S::WebType to |const X&| means it doesn't
take ownership.
WebCallbacks is exposed to chromium side, so we use WebPassOwnPtr as the
counterpart of PassOwnPtr.

[1] https://codereview.chromium.org/1234603003/
[2] This CL.
[3] https://codereview.chromium.org/1240763002/

BUG=493531

Review URL: https://codereview.chromium.org/1235083006

Cr-Commit-Position: refs/heads/master@{#342577}
8 files changed