Injector API restructuring

Injector API:
- Removed socket connection
- Added dynamic API for injections (injection is allowed in all time
after Injector was injected)
- Debugger protocol is extensible now!

Added v8-debug dependence
(Small binary API what allow to extend debugger protocol)
The current version of `_isRequireInFrame` is rather strange.

1. The node convention is to pass the error as the first callback argument, not the second one.
  `done(err, TARGET_FRAME)`

2. The callback is usually passed as the last function argument.
 `isRequireInFrame = function(TARGET_FRAME, done)`

3. If don't understand why `TARGET_FRAME` is passed down to the callback, when code providing the callback (i.e. the caller of `isRequireInFrame`) already knows that value. I suppose such arrangement makes the `.bind`-based control flow easier, but that's a bad driver for the design.

4. The name is rather misleading too, a function starting with `is` should return `true/false`.

Here is my proposal:

```js
InjectorClient.prototype.evaluateRequire = function(TARGET_FRAME, done) {
  this._debuggerClient.request(
    // etc.
    function(error, result) {
      done(error);
    }
  });
}
```