Moved session.attach to DebuggerAgent.

Modified DebuggerAgent to use DebuggerClient instead of session.

Moved initialization of debugging session from session to DebuggerAgent.
Cleanup: Agents depend on debuggerClient

Modified RuntimeAgent and PageAgent to depend on DebuggerClient instead of
session.

Removed DebuggerClient.sendDebugRequest method.
Moved afterCompile handler to ScriptManager.
Implemented DebuggerClient.clearBreakpoint
fetchCallFrames generates scope objectIds

Modified CallFramesProvider so that it does not fetch scope details
together with call frames. It creates a special objectId instead.

RuntimeAgent.getProperties checks for this special objectId format
and delegates getProperties to CallFramesProvider, which sends
'scope' debugger request to get scope details.