chore: pull in my `defer` macro
feat(pool): share SSL session cache in pool

The initial implementation shares with static, thus global.  An option
to choose from C++11 thread_local and Boost will be provided later.

DNS cache will be shared within a multi-handle.
feat(pool): implement the keep-alive pool

The initial implementation shares the connections globally.

Depends on `curl_multi_wait` introduced in libcurl 7.28.