Use native Promise when available.

Tests run fine in both 0.10.29 and in 0.11.13.

I did not introduce any test for this, since it would need quite a lot of changes in the loading of modules in the current test suite.