fix unshift triggering readable

unshift can trigger `on('readable')` making the callback being called twice. this pr fixes that