[dart2wasm] Split DispatchTable.selectorForTarget into two methods
[dart2wasm] Split DispatchTable.selectorForTarget into two methods

Currently `selectorForTarget` is used for two different things:

1. In `DispatchTable.build` when creating selectors. This process
   creates new selectors, and if a selector for a member already exists,
   updates the selector's signature and `calledDynamically` field.

2. After `DispatchTable.build`, when generating code. These calls should
   never create a new selector and should never change fields of an
   existing selector. If this creates a new selector, the selector won't
   have a dispatch table entry and we'll have a crash in compile time
   when we ask for the new selector's offset. If this updates an
   existing selector, that can invalidate the selector's signature after
   it's computed.

To avoid accidentally updating selector state in (2) this CL renames
`selectorForTarget` to `_createSelectorForTarget` and uses this in (1).
The original `selectorForTarget` now only returns an existing selector
from the selector map and doesn't update any selector state or create a
new selector.

Change-Id: I7b2a555166d8715a24df285af864c57958d92a07
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/269680
Commit-Queue: Ömer Ağacan <d15e39adaef0c3a64e4ea5d68f5c1b5be1f04e29@google.com>
Reviewed-by: Aske Simon Christensen <589eb3fd9a84f06d0ac46d3aa71dddcfb0814ccd@google.com>

dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk,dart-lang/sdk