Move the use of Y.soon to _notify()

This essentially reduces the number of calls to Y.soon
Change the value of |this| in callbacks

As per Promises A+ (see
https://github.com/promises-aplus/promises-spec/#the-then-method) the
value of |this| inside callbacks mut be the global object or undefined
in strict mode
Add "use strict" pragma
Add extra test for strict mode instead
Ignore the strict mode test when it is not supported

Remove superceded mention to |this|
Avoid calling Y.soon for an empty list in _notify()
Test if the test is in strict mode

Do not run the test for |this| being the global object when already in
strict mode
Add History entry on changes to the value of |this|
Merge pull request #671 from juandopazo/promise-perf

Promise performance and behavior tweaks