Request: Implement Class.Thenable. Fixes #2643.

Thenable example:

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

Example, hooking into an actual Promise:

	var request = new Request();
	request.send();
	var promise = Promise.resolve(request);
	promise.then(function(value){}, function(reason){});
Fx: Implement Class.Thenable.

Thenable example:

	var fx = new Fx.Morph(element);
	fx.start().then(function(element){}, function(element){});

Example, hooking into an actual Promise:

	var fx = new Fx.Tween(element);
	fx.start();
	var promise = Promise.resolve(fx);
	promise.then(function(element){}, function(element){});
HClass.Thenable: Add getThenableState function.
Request/Fx: Only resetThenable when state is not pending.

Which should in practice mean it's always called except for the very first time, due to the `this.check` call making sure there is no running state anymore.
Class.Thenable: Basic specs (still TODO: integrate Promises/A+ tests).