[ios] Change API to inform WebStateList of opener-opened relationship.

To allow defining WebStateList serialisation outside of the class,
e.g. in a free function, change the API used to inform WebStateList
of the opener-opened relationship by introducing a WebStateOpener
structure holding the opener WebState* and the opener navigation
index (last committed navigation item index).

BUG=546222

Review-Url: https://codereview.chromium.org/2766413004
Cr-Commit-Position: refs/heads/master@{#459413}
12 files changed