Validate debuggee.targetId before use in chrome.debugger

And refactored the tests to make sure that the debugger is detached upon
returning from RunAttachFunction. Previously, if the debugger
unexpectedly succeeded in attaching, the method would return (because
empty error != some error), causing the attached debugger to not be
detached.

R=rdevlin.cronin@chromium.org
BUG=456841
TEST=browser_tests DebuggerApiTest.DebuggerNotAllowedOnOtherExtensionPages

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

Cr-Commit-Position: refs/heads/master@{#315675}
(cherry picked from commit 409bf9d6104f83c80cd85bd261784b39cab8e93e)

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

Cr-Commit-Position: refs/branch-heads/2272@{#343}
Cr-Branched-From: 827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4-refs/heads/master@{#310958}
2 files changed