better public API for fromBinder, withHandler, and withInterval

Use emitter object instead of `send(type, value)` function in public API