Request: Implement Class.Thenable. Fixes #2643.

Implements Class.Thenable in Request and provides resolve and reject
events for those who prefer to hook it into a "real" Promise.

Thenable:

	var request = new Request();
	request.send().then(function(value){}, function(reason){});

Using events to hook into a "real" Promise:

	var promise = new Promise(function(resolve, reject){
		var request = new Request();

		request.send({
			onResolve: resolve,
			onReject: reject
		});
	});
	promise.then(function(value){}, function(reason){});