Allow responses to be request themselves

This allow to have protocols where the response messages are build
using own methods, for example an 'error' one, while still these RPC
requests being managed transparently by the library.

Request.cancel() -> RpcBuilder.cancel(request)

This allow to fix bug https://github.com/joyent/node/issues/7504
on Node.js.

Change-Id: Ic31821739791ffc112f956ba4457ad219618cd43