Added promise.inspect() method

Inspect returns an object with a 'state' property which can be either
'pending', 'fulfilled' or 'rejected', depending on the state of the
promise.

If the promise is fulfilled, the object also has a 'value' property which
contains the fulfilling value.

If the promise is rejected, the object also has a 'reason' property which
contains the rejecting value.