To share keepalive connections across all workers

In order to limit the number of connections for each upstream, it's
worth to share keepalive connections across all workers, so that idle
connections could be reused effectively by other workers.

* Features:
  - All operations on shared memory are lockfree, workers will hardly
    ever block each other.

  - To get idle keepalive connection from worker's local pool firstly,
    which could avoid unnecessarily transferring socket fd between workers.

  - Add "shared" option for upstream's "keepalive" directive. We can use
    this option to enable shared keepalive connections:

        http {
            upstream abc {
                ...;
                keepalive n shared;
                ...;
            }
        }

Signed-off-by: Yunkai Zhang <qiushu.zyk@taobao.com>