support chained mode

It's useful for `ready(obj).ready(fn).on('foo', fn).once('bar', fn);`