don't `pop` or try to send on an empty pipeline

the current code will try to pop on an empty pipeline. i updated this to exit early on an empty list.

why?

if you're using a pipeline to wrap a web request ( via middleware or app logic ), you don't necessarily know if the pipeline has been filled or not.  inspecting pipe._stats works, but  that's messy.  this lets you just call send() and not worry.