Add multiexpand API with pipeline support, falling back to connection re-use.

@eam at the very least, WDYT about adding `multiexpand` method? If we want to add new endpoint to server in future we can switch out the implementation.

This change doesn't help that much (really we want SPDY/HTTP2 for multiplexing), but is better than nothing. I half-heartedly tried to run some benchmarks but response times are just all over the map anyways that it overshadowed any improvement with my short run times. I did confirm it was working with debug logging.

For reference, grange supports pipelining, crange doesn't. (that's just what the out-of-the-box HTTP servers are doing, I didn't change either of them.)
looks like it is thrown after the first request if pipelining isn't supported? That's kind of weird actually, means we might be double returning the first result. I'll investigate.

https://github.com/drbrain/net-http-pipeline/blob/master/lib/net/http/pipeline.rb#L254