Update Promise implementation to match V8 ToT
Add Promise A+ tests