Flexible JavaScript Promise/Proxy wrapper for EventEmitter-style objects