Shared keepalive v5

To share keepalive connections across all workers

Changes in V5:
 - Use bsearch() to speed up the searching of upstream servers.
 - Add "per_server" option for upstream's "keepalive" directive.
 - Should use ngx_exiting/ngx_quit to check process status.

Changes in V4:
 - Fix bug about initializing srv->idle_list.
 - Check process status before accessing shared memory.
 - Continue to fix some coding style.
 - Use ngx_process_idx as index when access idle_list.
 - Reclaim connection into idle_list when send fd failed.

Changes in V3:
 - Adjust some coding style.
 - Remvoe zero array in keepalive_shared_srv_t.
 - Remove assert().
 - Fix ngx_channel_handler().
 - Ignore connections when its owner process is dead.
 - Delete old shared memory when relaod Tengine.
Linux only?