[promise] added unit test for result value checking (issue #2)
[promise] refactored big part of the logic into setState: and setResult_: (issue #2)
[executer] moved all logical execution code into internal method. Now execute:withValue: does only ONE job: to proxy