IDL compiler: [CallWith=ScriptArguments] with optional argument

Primarily a refactoring of the C++ method call, since same code needed
on early exit (due to optional arguments).

[CallWith] CL 2/3, followup to:
IDL compiler: [CallWith] for methods (void, no optional arguments)
https://codereview.chromium.org/59033003/

BUG=239771
NOTRY=true

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

git-svn-id: svn://svn.chromium.org/blink/trunk@161408 bbb929c8-8fbe-4397-9dbb-9b2b20218538