fix: avoid Getters / Setters handling variables with same names

* * *

This commit was sponsored by The Hoodie Firm.
You can hire The Hoodie Firm:

http://go.hood.ie/thehoodiefirm
fix: make sure promises get wrapped with Hoodie-specific callbacks

the check for `promise.done` is not sufficient. At least
PhantomJS has the `.done` callback on its native Promise object.

* * *

This commit was sponsored by The Hoodie Firm.
You can hire The Hoodie Firm:

http://go.hood.ie/thehoodiefirm