Detect and override Safari 7.1 native Promises

@cscott, what do you think? Would it be worth just wrapping Safari 7.1's native Promises rather than completely overriding them?

Fixes #288.