Refactor lib/connection to pass proxies to connection factory functions, thus allowing them access to proxy.advise.  Split pipeline composition out of lib/functional into lib/pipeline.