Create extension source message port early

This is a pure refactoring CL. It slightly changes the extensions
message channel initialization flow, so that the ExtensionMessagePort
instance of the source endpoint is constructed earlier - as soon as
MessageService::OpenChannel*() is called - rather than later after all
checks and asynchronous tasks are done.

The goal is to streamline the whole initialization process in align with
native-process-initiated message channels that will be implemented soon,
because in their case the source message port will be passed as a
parameter to MessageService from non-//extensions code.

BUG=chromium:898746
TEST=existing tests

Change-Id: I057e1ef8292a2892e09465ccf973d2fbbb0cbc42
Reviewed-on: https://chromium-review.googlesource.com/c/1470192
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Commit-Queue: Maksim Ivanov <emaxx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#632888}
6 files changed