Moved detection of conn errors to debugger.

Moved code for detecting special errors (ECONNRESET, ECONNREFUSED)
from session to debugger.

Modified debugger 'close' event to send close reason as the first parameter.
Removed unused code from session.js
Extracted frontend communication to FrontendClient

Moved methods like sendResponse, sendEvent, etc. to FrontendClient.
Modified Agents and FrontendCommandHandler to use this new object
instead of session.

Removed ping message since it is no longer needed (socket.io can keep
the connection alive or handle reconnect).
Extracted debugger communication to DebuggerClient

Moved debugger-related code from session to DebuggerClient.

Moved sendDebugRequest from debugger to DebuggerClient.

Fixed a bug where a front-end page served from an old node-inspector
process crashed the new node-inspector process after restart.
Started rename of Debugger.sendDebugRequest.

Moved sendDebugRequest code to a new method called 'request'.
Refactored 'break'/'exception' handling

Moved session methods for handling 'break' and 'exception' events
to a new class BreakEventHandler.