Portals: Add checks for failure scenarios for activate()

The promise returned by activate() rejects with an error if:

- activate() is called on a portal that is already activating
- activate() is called on a portal when another portal in the document
  is already activating
- activate() is called on a nested portal

Bug: 914122
Change-Id: I43136bc363be9f710dae6c107058b7b1a6674263
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1496482
Commit-Queue: Adithya Srinivasan <adithyas@chromium.org>
Reviewed-by: Nasko Oskov <nasko@chromium.org>
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Reviewed-by: Lucas Gadani <lfg@chromium.org>
Cr-Commit-Position: refs/heads/master@{#643545}
11 files changed