Restore breakpoints on debugee restart.

When the debugged application is restarted, node-inspector restores all
breakpoints from the debugging session.
Update list of scripts on afterCompile event.

Added afterCompile listener that registers
newly parsed/loaded script. Includes

- refactoring of script registration
  (extracted class ScriptManager).

- fix of script path shortening, where windows paths
  containing '\' instead of '/' were not shortened
  at all.
Fixed breakpoint restore bug.

Fixed bug where breakpoint restore did not work well
with shortened script names.
Display breakpoints in scripts loaded later.

Fixed a bug where breakpoints set before script was loaded
were not marked with blue arrow in script source panel.
Updated front-end to blink branch 1507.
Patched front-end/inspector.html

Added node-inspector specific scripts.
Reuse stubs and commands from webkit-inspector.

Use original InspectorBackendStub and InspectorFrontendHostStub.
Generate InspectorBackendCommands.js from protocol.json.
Use original inspector.html instead of index.html.
Rework backend to support the new frontend.

* Deferred initialization of WebInspector front-end until the web-socket
  is connected.

* Upgraded calls to functions that no longer exist in the new front-end.

* Implemented few custom events (debuggerWasDisabled, showConsolePanel).

* Removed front-end patches that are no longer required.

* Created FrontendCommandHandler that will allow us to move command handlers
  from session to Agent classes similar to what we have in front-end.
Implemented breakpoints

* Debugger.setBreakpointByUrl
* Debugger.removeBreakpoint
* Debugger.setPauseOnExceptions

Removed script file path shortening, because the new front-end display nice
tree based on paths and it also uses script paths to set breakpoints.
Implemented Call Stack.

Also added async module as a new dependency.
Implemented execution-control related commands

* pause
* resume (continue)
* stepOver, stepInto, stepOut
* setOverlayMessage (dummy implementation)

Removed session.js methods that are no longer used.
Implemented RuntimeAget.getProperties()

* Fixed convert.v8RefToInspectorObject to correctly decode object class name
  and buffer/array size into description.

* Modified debugger.sendDebugRequest to send refs lookup table to callback.

* Extracted code for launching debugger from mocha tests into a standalone
   file (module).
Implemented activate/deactivate breakpoints.

* DebuggerAgent.setBreakpointsActive
Implemented 'Continue to Here' command

* DebuggerAgent.continueToLocation
Updated the Console methods under both Runtime and Debugger.

Method names: Runtime.evaluate, Debugger.evaluateOnCallFrame

To facilitate these, converters now exist for both Results/Values gotten from V8 via the debugger into Inspector Values and Error messages into Inspector Error objects.

Side Effect: Runtime.getProperties had to be updated to handle new types of values the Inspector is now slinging its way.
Breaking on an Exception now provides a reason.
Commands not used/supported, capability queries

Added no-op implementation for commands that are ignored by node-inspector,
e.g. CSS.enable.

Implemented (some of) capability queries called by front-end,
e.g. Worker.canInspectWorkers.

Implemented dummy Page.getResourceTree returning internal `node.js` as
toplevel frame. This file is marked as "main" in front-end source tree.

Removed the call to WebInspector._doLoadedDoneWithCapabilities()
from WebInspector.onWebSocketConnected, since it will be called
from Worker.canInspectWorkers response callback.

Also removed the call to WebInspector.showPanel() from
WebInspector.onWebSocketConnected, because panels are not created at that
time. (They are created by WebInspector._doLoadedDoneWithCapabilities(),
which will be called later.)
v8NameToInspectorUrl for `evaluate` scripts

Call to `evaluate` creates a new script with no URL.
This commit fixes v8NameToInspectorUrl so that it
returns empty string as URL in this case.
DebuggerAgent.getFunctionDetails()

Partial implementation of DebuggerAgent.getFunctionDetails(). There is no
easy way of obtaining scope-chain of the frame where the function was defined,
so we are returning an empty array for now.

Added unit-test verifying that v8RefToInspectorObject fills objectId
for functions.
Fixed DebuggerAgent.setPauseOnExceptions.

The previous version of setPauseOnExceptions did not work at all.

The current version always sends two `setexceptionbreak` requests,
one for `all` and another for `uncaught` exception type.