exchanges: new package abstracting HTTP exchanges